最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Nginx 安全控制:备份文件访问权限的限制方法
时间:2026-06-19 09:12:47 编辑:袖梨 来源:一聚教程网
最直接有效的方式是用 location 规则拦截请求路径并把备份目录移出 Web 根目录:添加 location ^~ /backup/ { deny all; } 等前缀与精确匹配规则,确保优先级高;物理路径须置于 Web 根外(如 /data/backups/);补充独立日志、403 验证及避免被其他 location 覆盖。
最直接有效的方式是用 location 规则拦截请求路径,并把备份目录移出 Web 根目录——Nginx 本身不读取文件系统权限,只控制 HTTP 层访问,所以必须从 URI 入口堵住。
精准屏蔽备份路径的 location 规则
在 server 块中添加前缀匹配规则,确保优先级高、不被其他 location 覆盖:
-
location ^~ /backup/ { deny all; }—— 屏蔽所有以/backup/开头的 URL(如/backup/db.sql、/backup/logs/2024.log) -
location ^~ /backups/ { deny all; }—— 同理覆盖常见复数命名 -
location = /backup.zip { deny all; }—— 精确匹配单个高频备份文件名 - 避免使用
~ .zip$这类后缀匹配,它可能漏掉/backup/index.php?file=123这类绕过方式
物理路径与 Web 路径必须分离
很多泄漏源于目录放错位置。例如:
- 错误做法:
root /var/www/site;+ 备份目录在/var/www/site/backup/→ 即使没加deny,只要 URL 能拼出来就可访问 - 正确做法:把备份目录移到 Web 根外,比如
/data/backups/或/var/backups/,这样即使配置遗漏,Nginx 默认也无法映射到该路径 - 检查
alias指令是否意外指向了备份目录,例如alias /var/www/site/backup/;会直接暴露物理路径
补充防护与验证手段
仅靠 deny all 不够,还需闭环验证和日志追踪:
- 为拦截规则添加独立访问日志:
access_log /var/log/nginx/denied_backup.log main;,便于发现扫描行为 - 重启 Nginx 后立即测试:
curl -I http://yoursite.com/backup/,确认返回403 Forbidden - 检查是否被其他 location 覆盖,比如
location ~ .php$ { ... }若放在deny规则之后,可能导致/backup/config.php被误执行而非拒绝 - 临时目录同理处理:
location ^~ /tmp/ { deny all; }、location ^~ /runtime/ { deny all; }
相关文章
- 明末渊虚之羽版本奖励错误如何补偿 07-01
- 原神峡谷盈月之镜解谜方法 07-01
- 末日进化如何升级人物卡 07-01
- 魔兽世界卡格罗什的命运背包位置在哪 07-01
- 沙石镇时光体力恢复方法大全 沙石镇时光快速回满体力的实用技巧 07-01
- 空洞骑士寻神者篇章攻略 07-01