Modsecurity 仅允许从两个特定的 REFERER HEADER 进行访问

Modsecurity 仅允许从两个特定的 REFERER HEADER 进行访问

我有一个 Modsecurity 规则,它会阻止所有浏览器 Referer Header 与此不同的请求:sub1.example.com

因此,基本上规则仅允许在 Header Referer 为以下情况时的请求sub1.example.com

SecRule REQUEST_HEADERS:REFERER "!@rx (?i)^https?://sub1.example.com/" /
"id:'7001024',phase:1,log,deny,status:404,msg:'Blocking Wrong or Empty Referer'"

我的问题是:我如何修改此规则以允许具有第二个引荐来源的请求,例如sub2.example.com

答案1

我对正则表达式并不是最了解,但我认为这就是你想要做的:

"!@rx (?i)^https\?://(?:sub1\.example\.com|sub2\.example\.com)/"

这将阻止任何不匹配的内容:

https?://sub1.example.com/
https?://sub2.example.com/

注意:我添加了一些?和的转义符.

我还认为您可以添加t:lowercase,,而不必(?i)在正则表达式中使用。

相关内容