要防止nginx目录遍历漏洞,核心是限制访问范围并关闭自动索引。1. 关闭autoindex指令以禁用目录列表功能;2. 使用location精确匹配允许访问的目录和文件类型,并配合try_files防止暴露目录结构;3. 限制nginx用户权限,确保其无法访问非公开文件;4. 尽量使用root代替alias指令以避免路径映射错误;5. 定期审查配置文件并检查语法;6. 查看错误日志,监控异常请求;7. 使用安全扫描工具辅助检测漏洞;此外,还可通过更新nginx版本、部署waf、限制请求大小与频率、启用https、进行安全审计及使用加固工具等方式进一步提升安全性。

Nginx目录遍历漏洞,简单来说,就是攻击者能像浏览自己电脑文件夹一样,看到你服务器上的文件目录结构,甚至下载一些敏感文件。要防住它,核心就是让Nginx只允许访问指定的文件,禁止它“乱逛”。
解决方案
禁用 autoindex: 这是最直接的方法。autoindex 指令默认是关闭的,但如果你的配置文件里开启了它,那就赶紧关掉。它会列出整个目录的文件列表,简直是给攻击者开了扇窗。
location / {
autoindex off;
}限制访问范围: 用 location 指令精确指定允许访问的目录和文件类型。不要使用过于宽泛的匹配规则。
location /images/ {
root /var/www/your_website/public;
try_files $uri $uri/ =404;
}这里只允许访问 /images/ 目录下的文件,并且使用了 try_files 来防止请求不存在的文件时暴露目录结构。
移除不必要的文件访问权限: 服务器上有些文件可能不需要通过Web访问,比如配置文件、日志文件等。确保Nginx用户(通常是 www-data 或 nginx)没有访问这些文件的权限。
chmod 750 /var/www/your_website/config chown root:www-data /var/www/your_website/config
使用 alias 指令要小心: alias 指令会将请求映射到服务器上的另一个目录。如果使用不当,可能会绕过访问限制。尽量使用 root 指令,它更安全。
# 尽量避免这样使用 alias
location /static/ {
alias /path/to/static/files/;
}
# 推荐使用 root
location /static/ {
root /path/to/static;
try_files $uri $uri/ =404;
}定期审查配置文件: 安全配置不是一劳永逸的,需要定期审查Nginx配置文件,确保没有遗漏或者配置错误。
首先,要了解你的网站结构和Nginx配置。尝试在浏览器中直接访问你认为可能存在漏洞的目录,比如 /images/、/uploads/ 等,看看是否能看到文件列表。 如果能看到,那说明很可能存在目录遍历漏洞。
其次,检查Nginx配置文件中 autoindex 指令是否开启,以及 location 指令的配置是否过于宽松。可以使用 nginx -t 命令来检查配置文件的语法是否正确。
再者,查看Nginx的错误日志,看看是否有403 forbidden 或者 404 not found 的错误,这可能意味着有人在尝试利用目录遍历漏洞。
最后,可以使用一些安全扫描工具来自动检测Nginx是否存在目录遍历漏洞。
try_files 在防御目录遍历漏洞中扮演什么角色?try_files 指令可以尝试按顺序访问指定的文件或目录。如果所有文件或目录都不存在,则返回指定的错误码。 它的作用是防止Nginx在找不到请求的文件时,直接返回目录结构。
举个例子:
location /images/ {
root /var/www/your_website/public;
try_files $uri $uri/ =404;
}如果用户请求 /images/logo.png,try_files 会先尝试访问 /var/www/your_website/public/images/logo.png,如果文件存在,就直接返回。如果文件不存在,则尝试访问 /var/www/your_website/public/images/logo.png/ (注意后面的斜杠),如果目录存在,也会返回目录内容,如果目录也不存在,最后返回 404 错误,而不是暴露目录结构。
除了配置,还可以从其他方面入手,提高Nginx的安全性:
以上就是Nginx 目录遍历漏洞的防御配置的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号