访问 /static/ 直接返回目录列表,浏览器里能看到 1.2 万个文件名,安全扫描把这条标成高危。日志里能对上时间点,这种反而好排。

location 里开了 autoindex on,目录没有 index 文件时 Nginx 就生成列表页。上传目录和备份目录经常被整段暴露。这一点先确认清楚,后面就不用反复试。

autoindex off;
location /static/ {
  try_files $uri $uri/ =404;
}

「目录列表暴露」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。

别只看报错的最后一行,往上看几行,真正的起因通常在上面。同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。

把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。

处理上按这个顺序:全局和静态 location 都设 autoindex off;用 try_files 兜底 目录请求直接 403 或 404;确认没有遗留的 autoindex on 在 include 文件里;用 curl 请求几个目录确认不再列清单。

结果对不对很好判断,/static/ 返回 404 或 403 不再输出目录清单。

作者 9823189