拒绝 apache 路径中带有父级 .. 的 URL

拒绝 apache 路径中带有父级 .. 的 URL

我想知道是否有一种简单的方法可以让 apache httpd 拒绝(403)任何..路径中包含父级的 URL。

到目前为止我已经尝试过(为简单起见,忽略了虚假的正面信息)

<LocationMatch "\.\.">
Order allow,deny
Deny from all
</LocationMatch>

但那没用。目录Allow from all中有。我走的路对吗?或者有没有更简单的方法可以做到这一点(就像 90 年代的 Fasttrack 一样)。

答案1

我会用ModSecurity

SecRule REQUEST_URI "../" "log,deny,msg:'Directory Traversal Attack Detected'"

使用一些请求进行测试:

http://domain.com/../../../../etc/passwd

并检查审计日志,你会看到类似这样的内容:

[modsecurity] [client x.x.x.x] [domain domain.com] [302] [/20120816/20120816-1529/20120816-152911-1np2Nn8AAAEAA Aq6EU0AAAAG] [file "/etc/httpd/modsecurity.d/modsecurity_crs_10_config.conf"] [line "305"] [msg "Directory Traversal Attack Detected"] Access denied with code 403 (phase 2). Pattern match "../" at REQUEST_URI.

相关内容