全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-20 6 分钟 ✍️ juanwangdev

禁止目录浏览与敏感文件保护

默认情况下 NGINX 在未找到索引文件时会返回 403 或 404,但开启 autoindex 后会暴露整个目录结构。敏感文件也需要额外保护防止直接访问。

禁止目录浏览

关闭 autoindex

nginx
server {
    listen 80;
    server_name example.com;
    root /var/www/html;
    
    # 确保关闭目录浏览
    autoindex off;
    
    location / {
        try_files $uri $uri/ =404;
    }
}

NGINX 默认 autoindex off,但若从 Apache 迁移或接手配置需确认未开启。

误开启的风险示例

nginx
# 危险配置 - 不要这样做
location /downloads/ {
    autoindex on;  # 暴露整个目录内容
    autoindex_exact_size off;
    autoindex_localtime on;
}

攻击者可直接查看所有文件列表,包括备份文件、配置文件等。

敏感文件保护

禁止访问隐藏文件

nginx
# 禁止访问 .git、.env、.htaccess 等隐藏文件
location ~ /\. {
    deny all;
    access_log off;
    log_not_found off;
}

正则 /\. 匹配所有以点开头的文件,deny all 直接拒绝。同时关闭日志减少噪音。

禁止访问备份文件

nginx
# 禁止访问 .bak、.old、.swp、.sql 等备份文件
location ~* \.(bak|old|sql|tar|gz|zip|swp|swo)$ {
    deny all;
    return 404;
}

禁止访问配置文件

nginx
# 禁止访问常见配置文件
location ~* /(config\.php|wp-config\.php|\.env|web\.config)$ {
    deny all;
}

# 禁止访问 composer/依赖相关
location ~* /(composer\.(json|lock)|package\.json|yarn\.lock)$ {
    deny all;
}

静态资源目录隔离

公开目录与私有目录分离

nginx
server {
    root /var/www/html;
    
    # 公开静态资源
    location /static/ {
        expires 30d;
        add_header Cache-Control "public, immutable";
    }
    
    # 私有文件(上传目录)
    location /uploads/ {
        # 只允许特定类型
        location ~* \.(jpg|jpeg|png|gif|pdf)$ {
            expires 7d;
        }
        location ~ \. {
            deny all;
        }
    }
}

嵌套 location 实现文件类型白名单,非白名单文件走外层 deny all

防盗链配合

防止敏感文件被其他网站引用:

nginx
location ~* \.(jpg|jpeg|png|gif)$ {
    valid_referers none blocked server_names *.example.com;
    
    if ($invalid_referer) {
        return 403;
    }
}

要点总结

  • 保持 autoindex off 防止目录内容暴露
  • 使用 location ~ /\. 统一禁止所有隐藏文件访问
  • 通过正则匹配备份文件扩展名统一拒绝
  • 敏感配置使用嵌套 location 实现类型白名单
  • log_not_found off 减少 404 日志噪音
  • 文件保护应与权限控制、防盗链配合使用

📝 发现内容有误?点击此处直接编辑

← 上一篇 日志审计与安全监控
下一篇 → 访问控制与IP白名单
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库