请各位站长注意 .git 目录安全隐患
简单搜了一下,貌似还没人在 V2 发过相关话题?
刚才正在搬砖,突然收到一个新邮件提醒(全英文的)。下意识以为是垃圾邮件,但并不是。
仔细一看,原始是我管理的某个网站被 Repo Lookout 扫出了 .git 目录安全隐患。具体而言就是,该网站下的这 2 个 URL 路径是可以直接被任何人访问的:
网站域名/.git/config
网站域名/.git/logs/HEAD
Repo Lookout 就是从这个文件里找到我的邮箱,给我发了一封告警邮件。
虽然这个问题暂时没要命,但的确能够看到不少相对敏感的信息。你也赶紧去检查一下吧!
如何解决?在他们网站都已经介绍了,去看看便知。简言之,就是设置你的 web server 限制 .git 路径访问。
Nginx 配置加上
location ~ /.git {
deny all;
}
或
location ~ /.git {
return 404;
}
Apache 配置加上
Apache 2.4
Require all denied
Apache 2.2
Deny from all
Caddy 配置加上
respond /.git* 403
或
respond /.git* 404
最后记得修改完配置后要重启 web server 哈。
纯静态网站还没用 webpack 之类的打包工具吗,实在想不到 .git 出现在 wwwroot 应该有问题吧
古时候很多人是直接在服务器 git pull 的,尤其是 PHP 这种文件到位就能跑的
这样的非盈利组织真是令人敬佩
一些 github 上面的项目,web 相关的项目,大多数都是放在一个单独的目录下,比如/html 或者/src 。如果直接 index.html 在跟目录下,很多人代码 clone 下来直接就设置成根目录了,.git 就被暴露出来了,在项目里面额外加一层目录就是为了加了一道防线。几年前看日志的时候发现过这种请求日志,从那以后,只要是类似这种项目,都会额外加一层目录。我一般是只要路径中带点符号,一律 ban 掉。
最好是 http 服务器直接禁止访问“.”开头的文件,不应该只禁止.git 。同时 package.json 以及 composer.json 等文件最好也禁止访问。
为什么你会把.git 放进网站目录……
git clone
因为很少会有人直接 git clone 下来一个静态网站....
受教了。谢谢 up 主提供信息。
有点安全意识的人谁会直接用 git 去拉代码?不都是发布系统搞吗
git 文件泄露是非常常见的漏洞,属于源码泄露的一种,同时还仍需注意 svn 、idea 、DS_Store 、网站备份文件、web.xml 、js.map 等
不仅仅是 Git location ~ /(.user.ini|.ht|.git|.svn|.project|LICENSE|README.md) { deny all; }
正常情况下 .git 不会放到发布目录下吧?
正确做法:git clone 以后选择性将文件链接/复制到网站目录(大部分 IDE 都可以做到,webstorm 就可以)错误做法:直接 git clone 到网站目录然后用 IDE 打开
不只是 git ,web 目录直接 .开头的目录都禁止访问完事。
以前面试过,怎么通过.git 还原源码
这个是吧 git 下来的整个目录当 wwwroot 了吧,被编译过的项目很少出现这个问题
# . fileslocation ~ /.(?!well-known) { deny all;}推荐一下 DO 的 config generator www.digitalocean.com/community/tools/nginx?global.app.lang=zhCN
.git 放在网站目录location 也配置到能够访问到.git 目录这算两个最基本的安全疏忽吧
php:.git 正常都在 public 。tp3 这种老年代产品才会,网站目录 = 项目根目录。
直接禁止.well-known 以外的所有点开头的目录就行了🌚
php:网站目录正常都在 public 。tp3 这种老年代产品才会,网站目录 = 项目根目录。
说明根本没有做 deploy 流程
用个工具叫 githacker ,6 年前我用来 copy 过一个老的 php 站点。刚看了一眼那个工具,1 年前就不维护了。现在前端基本都流程化了,很少有前后端一体化的项目,直接把文件夹丢上去了。
最好用打包工具走一个“编译”过程,只保留需要的部分,这样不仅少暴露文件,还可以提高性能
也就 10 年前吧,现在很多 php 项目依然是这样部署的。坏了我成古人了。 也不一定是非赢利组织,也有公司这样扫,邮件点进去就是卖他的安全产品 .well-known/acme-challenge: ?
平时工作生活中 如何持续提升自己的英文水平? You should try asking questions in English as a way to practice…
推荐一个可以免费申请 ssl 通配符证书的网站,ssl.spug.cc,看起来可以无限免费申请。 直接点击会出错,复制再打开,不会。404 Object Not FoundT…
请先看一下下面的这段Javascript程序以及其结果。 [javascript] 1 + + 1 // => 2 1 + – + 1 …