2017-04-25 68 views
0

我想編寫一個規則,它只允許指定URL。我只有兩個網址的 1:abc.com/configuration/ 2: 「@beginsWith /配置」 abc.com/update/用於URL白名單的ModSecurity

SecRule REQUEST_URI \ 「ID:700003,階段:1,日誌,否認味精: '不同的URL來訪問'」

SecRule REQUEST_URI 「@beginsWith /更新」 \ 「ID:700004,階段:1,登錄,傳遞,味精: '更新URI訪問'」

哪有我合併這兩條規則,以便可以覆蓋其他?

謝謝

+0

我不明白你的問題。 –

+0

我想允許上面的URL唯一的休息我希望該modsecurity將阻止。 – user2670674

回答

1

你可以在這裏做很多事情。

By default a regex is used to match in ModSecurity,所以你可以寫一個規則來涵蓋URI和塊,如果不匹配:

SecRule REQUEST_URI "!\/(configuration|update)\/" "phase:1,id:700003,block 

你可以使用@pm做同樣的:

SecRule REQUEST_URI "[email protected] \/configuration\/ \/update\/" "phase:1,id:700003,block 

另外,您可以使用skipAfter,這將允許您按不同的規則列出URL,然後有一個阻止規則,如果上述任何規則匹配,則會跳過該規則:

SecMarker BEGIN_VALID_URL_CHECK 
SecRule REQUEST_URI "[email protected] /configuration" \ "id:700003, phase:1,log,skipAfter:END_VALID_URL_CHECK,msg:'Different URL Accessed'" 
SecRule REQUEST_URI "@beginsWith /update" \ "id:700004, phase:1,log,skipAfter:END_VALID_URL_CHECK,msg:'Update URI accessed'" 
SecRule REQUEST_URI "." \ "id:700005, phase:1,log,block,msg:'Another URI accessed - blocking'" 
SecMarker END_VALID_URL_CHECK 

或者你可以allow匹配那些在ModSecurity中停止處理這個請求的模式的規則(這可能是一個不好的選擇,因爲它會跳過配置稍後在你的配置中定義的任何其他ModSecurity規則,但爲了完整性清酒):

SecRule REQUEST_URI "[email protected] /configuration" \ "id:700003, phase:1,log,allow,msg:'Different URL Accessed'" 
SecRule REQUEST_URI "@beginsWith /update" \ "id:700004, phase:1,log,allow, msg:'Update URI accessed'" 
SecRule REQUEST_URI "." \ "id:700005, phase:1,log,block, msg:'Another URI accessed - blocking'"