我有一个 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)
在正则表达式中使用。