本文目录导读:

针对“目录未授权访问”漏洞(也称为目录浏览漏洞或目录遍历漏洞),防护的核心原则是:禁止Web服务器列出目录内容,并严格控制对文件系统的访问权限。
以下是从Web服务器配置、应用层代码、架构层三个维度的具体防护措施:
配置Web服务器,禁用目录列表
这是最根本、最有效的防护方法,根据你使用的服务器软件进行配置:
A. Nginx
- 在
server或location段中,确保autoindex指令为off(默认就是关闭的,但建议显式设置):
location / {
autoindex off;
# 其他配置...
}
- 如果想彻底禁止访问某个目录(
.git或配置文件目录),可以返回403或404:
location ~* ^/(\.git|config|backups)/ {
deny all;
return 404; # 或者 403,用404更隐蔽
}
B. Apache
- 在全局配置文件
httpd.conf或.htaccess文件中,对于特定目录禁用Options +Indexes:
<Directory /var/www/html>
Options -Indexes # 关键:减号表示移除Indexes选项
# 或者写成 Options None
</Directory>
- 使用
AccessFileName .htaccess时,可以在.htaccess中输入:
Options -Indexes
C. IIS (Internet Information Services)
- 打开IIS管理器,选择站点或目录。
- 双击“目录浏览”功能。
- 在右侧操作窗格中,点击“禁用”。
D. Tomcat
- 编辑
conf/web.xml文件,配置defaultservlet,设置listings参数为false:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value> <!-- 关键行 -->
</init-param>
</servlet>
应用层代码防御(双重保险)
如果Web服务器配置失效(例如使用了反向代理或自定义路由),代码层面也需要防护。
A. 禁用列目录功能
- 对于静态文件目录(如上传文件夹、临时文件夹),不要在代码中提供列表接口。
- 对于动态页面,使用
Directory.GetFiles()、glob()、os.listdir()等函数时,应仅获取特定文件名,不要输出目录结构。
B. 防御路径穿越(Path Traversal)
目录未授权常伴随路径穿越攻击(如 ../../etc/passwd),防护方法:
-
输入验证:
- 过滤黑名单字符:、、、
%2e%2e%2f、..%252f(二次解码攻击)。 - 使用白名单:限定只能访问特定文件夹内的文件。
- 禁止包含绝对路径(以 或
C:\开头)的请求。
- 过滤黑名单字符:、、、
-
路径规范化(Canonicalization):
- 获取用户请求的文件路径后,在服务器端解析出绝对路径。
- 检查该绝对路径是否以允许的目录路径开头。
示例逻辑(伪代码):
user_path = "uploads/../../etc/passwd" base_dir = "/var/www/uploads/" full_path = base_dir + sanitize_path(user_path) # 规范化 if not full_path.startsWith(base_dir): return 403 Forbidden else: read_file(full_path)
架构与运维层面的高级防护
A. 文件存储分离
- 不要将用户上传的文件(图片、文档等)存放在Web根目录(如
wwwroot、html)。 - 使用对象存储服务(如阿里云OSS、AWS S3、腾讯云COS),通过预签名URL(Signed URL)或临时令牌认证访问。
- 或者将文件存储在Web服务器之外的应用服务器上,由应用层通过内部接口转发。
B. 静态文件由Web服务器直出,动态文件由API处理
- 静态资源(CSS, JS, Images)直接由Nginx/Apache服务,访问规则清晰。
- 敏感文件(备份、配置文件、数据库导出)必须通过带有权限验证的API端点下载,且响应头设置为
Content-Disposition: attachment; filename="...";。
C. 使用WAF(Web应用防火墙)
- 在云WAF(如Cloudflare、阿里云WAF)或开源WAF(如ModSecurity)中,开启“路径穿越/目录遍历”防护规则。
- 通过规则阻断包含 、
..%2f、%00(空字节)等恶意特征的请求。
D. 最小权限原则
- 操作系统层面:Web服务器进程的用户(如
www-data、nobody)对目录只读,且只能访问其职责范围内的目录,绝对不能拥有对所有文件系统的读取权限。 - 定期审计:检查日志中是否有大量404或包含 的请求,这可能意味着扫描器在尝试利用目录未授权漏洞。
优先级清单
- 立即检查并关闭:Web服务器的
Directory listing / autoindex功能(最紧急)。 - 实施路径规范化和白名单:在代码层对所有文件读取操作进行绝对路径校验。
- 迁移敏感文件:将数据库备份、配置、密钥等文件移出Web可访问目录。
- 设置适当的文件权限:Web服务器用户只读且最小化访问权限。
- 启用WAF:作为网络层防线,拦截已知的利用Payload。
通过以上组合策略,可以有效防止攻击者通过目录浏览或路径穿越获取系统敏感信息。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播