如何将 Modsec 规则应用于特定页面?

如何将 Modsec 规则应用于特定页面?

我想使用 Apache Mod_security 阻止代理(x-forwarded)ip 某些页面(wp-comments-post.php)。

我当前的 mod_security 规则:

SecRule REQUEST_HEADERS_NAMES "^x-forwarded-for" "log,deny,id:48,status:403,t:lowercase,msg:'Don't use Proxy'"

答案1

你应该能够使用类似

<LocationMatch "wp-comments-post.php" >
    SecRule &REQUEST_HEADERS:X-Forwarded-For "@gt 0" "log,deny,id:48,status:403,msg:'Don't use Proxy'"
</LocationMatch>

我手边没有机器可以测试这一点,但如果有 >0 个 X-Forward-For 请求标头,它应该会拒绝访问相关位置。许多公司使用代理,因此您可能会发现需要将其设置为“@gt 1”以减少误报。Apache地点位置匹配文档。

答案2

我相信如果您将 modsec 规则包含在位置指令中,您就可以做到这一点。例如。

<Location /koko/lala/wp-comments-post.php >
SecRule .... 
</Location>

相关内容