如果 URI <%([\S\s]+?)(?:%>
被传递,我的渗透测试表明可能会泄露源代码。因此我试图使用 Nginx 来阻止这个 URI。默认情况下,它返回错误 400,但我希望它返回错误 403 作为额外的安全措施。为了阻止此 URI 的任何“变体”,我计划阻止 <
之后的任何内容。
在我的 location
块中,我有这个:
location ~* <(?=\%.*) {
deny all;
}
结果仍然是错误 400 而不是 403。
我还尝试了一个简单的正则表达式 <.*
,它适用于 https://regex101.com/r/18w2KM/1,但不适用于 Nginx。如果我用另一个字符替换 %
,则正则表达式有效。我尝试了许多其他在线方法,但它们要么无关紧要,要么不起作用。