关键在于提前埋点、实时匹配、快速告警:需确保Web服务器日志记录完整请求路径,用正则扫描或命令行实时监控.git/.env等敏感路径访问,结合IP频次、User-Agent和响应状态判定风险,并通过Nginx屏蔽、WAF拦截及CI/CD管控从源头阻断。

要审计网站对 .git、.env 等敏感文件的访问,关键不是“等用户访问完再查”,而是提前在日志中埋点捕获、实时匹配、快速告警。这类请求往往代表信息泄露风险或攻击试探,必须可查、可溯、可拦。
一、确认日志源是否记录了敏感路径请求
很多 Web 服务器(如 Nginx、Apache)默认会记录所有 HTTP 请求,但需确保:
- access.log 已开启,且日志格式包含
$request或至少$uri字段(用于还原完整请求路径); - 未因性能优化过滤掉 404、403 等状态码的日志——而 .git/config 或 .env 的探测请求常返回 404,恰恰是高危信号;
- 宝塔、cPanel 等面板用户,请进入【网站】→【设置】→【日志】,确认“访问日志”已启用,并记下日志路径(如
/www/wwwlogs/your-site.com.log)。
二、用关键词规则主动扫描或监控日志
不依赖人工翻查,而是让系统自动揪出异常请求:
用大白话操作当前项目的 Git/GitHub——配置 GitHub(装 gh CLI + 登录 + 建仓库)、备份、拉取下载、查询历史、回滚代码、管理分支。当用户用日常语言表达 git 意图时触发(例如"git备份一下""git下载项目""git拉下来""git看看我改了啥""git回退到上一个版本""git新建个分支搞新功能""git合并到主分支""git
-
Web 界面扫描(适合抽查):在宝塔【日志】→【网站日志】→【Web日志分析】中,输入正则:
\.git(/|/config|$)|\.env($|\?|/),点击扫描,7天内所有匹配请求高亮显示; -
命令行快速定位(Linux 服务器):执行以下命令,实时查看含敏感路径的新请求:
tail -f /www/wwwlogs/your-site.com.log | grep -E "\.git|\.env"; -
结构化告警(生产环境推荐):用日志监控插件(如宝塔“日志监控”)添加规则,路径填日志文件,关键词填:
\.git.*|\.env.*|/\.git/|/\.env$,匹配即触发邮件/钉钉通知。
三、结合响应状态与来源做风险判定
单看路径不够,要结合上下文判断意图:
- 同一 IP 在 1 分钟内连续请求
/.git/config、/.git/index、/.env—— 极可能是自动化扫描器,应立即封禁该 IP; - 请求来自境外 ASN 或非常用办公出口 IP,且 User-Agent 包含
sqlmap、dirsearch、gobuster—— 属于明确攻击行为; - 内部员工账号(如通过 SSO 登录后发起的请求)访问了
/api/.env.bak—— 需关联审计其操作权限和时间,排查配置失误或越权。
四、防御前置:不让敏感文件被访问到
日志审计是兜底手段,真正有效的是从源头阻断:
- Nginx 配置中加入屏蔽规则:
location ~ ^/(.git|\.env|\.htaccess) { return 403; }; - 部署 WAF(如云WAF或 ModSecurity),添加规则拦截含
.git/或.env的 URI; - CI/CD 流程中增加检查项,禁止将
.git目录或.env文件发布到 Web 根目录——这是最根本的解决方式。










