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