docker 容器 .git 泄露问题

最近公司的安全部门在扫描系统漏洞的时候发现了我们系统的一个漏洞,通过 GitHack 进行扫描,然后download 了前端的静态文件,第一次了解这个 GitHack,有点好奇,专门找了 github 库看了一下,其实使用起来蛮简单的,官方 readme 已经详细给出了操作步骤,这里不在叙述 https://github.com/BugScanTeam/GitHack
上图是公司安全部门给出的漏洞截图

在发现上述漏洞后,立马着手排查问题,由于我们的域名是 通过公网 -> F5 -> Ng -> 服务器的。其中 公网到 F5 的VIP 是不放文件的,那么这个.git 文件只能在 Ng 和 服务器中,所以第一步就是排查 ng 机器上是否有遗漏的.git 文件。在机器上 find了一把(ng 机器 文件少),查找后没有,那么确定是在服务器上了。

由于我们的服务器是 docker 启动的,ng 直接打到 容器内部,所以定位很简单,直接进入到 容器内部去排查,发现确实有一个 .git 文件。确定好了目标,就想办法处理。

我们的发版机制是通过 Jenkins build 镜像到 target 机器上,所以问题出错 也只能在 build 环节。

在 dockerfile 文件中有如下操作:

COPY . /usr/share/nginx/html/

这里会把 build 目录下的文件全部 copy 到 nginx 代理的目录下,所以 我们只要在这里把 .git 不要 copy 到 /usr/share/nginx/html/ 就可以了
当然这里的 dockerfile 文件可以指定文件一个一个 copy,不过太麻烦了。所以我们使用 docker的 ignore 文件来处理。
在 根目录下,新建 .dockerignore 文件。

写入以下内容:

.git

重新 发版,就ok 了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值