指南 · 约 3 分钟阅读
屏蔽暴露的 .git、.env 和备份文件
网站根目录中一个被遗忘的 .env 或 backup.sql 可能泄露你所有的密码和 API 密钥。检查只要一分钟,屏蔽只需几行配置。
代码和配置保持英文。
检查你自己的网站
以下每个地址都应返回 403 或 404,绝不能是 200:
shell
curl -s -o /dev/null -w '%{http_code}\n' https://example.com/.env
curl -s -o /dev/null -w '%{http_code}\n' https://example.com/.git/HEAD
curl -s -o /dev/null -w '%{http_code}\n' https://example.com/backup.sql只检查你自己的网站。验证所有权后,HackGrade 的深度扫描会测试更多路径。
在 nginx 上屏蔽
nginx
# hidden files and folders (.git, .env, .htpasswd), but keep /.well-known working
location ~ /\.(?!well-known/) { deny all; }
# backups and dumps
location ~* \.(sql|bak|old|orig|swp|log)$ { deny all; }在 Apache 上屏蔽
.htaccess
RedirectMatch 404 "/\.(git|svn|hg)(/|$)"
<FilesMatch "(^\.env|\.(sql|bak|old|orig|swp|log)$|~$)">
Require all denied
</FilesMatch>
Options -Indexes如果有文件已经暴露
- 从网站根目录删除该文件。把备份保存在根目录之外。
- 假设内容已被复制:更改数据库密码,并轮换其中的每一个 API 密钥和令牌。
- 如果暴露的是
.git目录,还要检查提交历史中是否曾经提交过密钥等机密信息。