一,什么时候使用chain
1,规则链("chain")的作用与AND一致。
仅当多条规则中的变量检查同时匹配成功时,才会触发链式规则的第一条规则中指定的阻断性操作。
链式规则中如果有一条规则没有匹配成功,则表示整个规则链匹配失败,不会执行对应的阻断性动作
2,
如果需要判断的条件大于等于2个,除最后一条规则外,规则链的所有规则都需要配置"chain"指令
3,例子:
规则: 以GET方式访问/kylin/api/admin/config这个uri时,
两个条件都匹配,则deny
SecRule REQUEST_METHOD "^GET$" "chain,msg: 'Kylin unauthorized config',severity:ERROR,deny,status:404,id:2015"
SecRule REQUEST_URI "/kylin/api/admin/config"
测试:
http://a.b.com/linux/kylin/api/admin/config/abc
二,三条规则组合的例子:
规则:
SecRule REQUEST_FILENAME "@beginsWith /admin" "chain,phase:1,deny,log,id:2020"
SecRule REQUEST_FILENAME "@endsWith .php" "chain"
SecRule REMOTE_ADDR "!@ipMatch 192.168.1.100" "t:none"
测试:
http://a.b.com/adminddd/abcd.php
标签:chain,admin,REQUEST,modsecurity,SecRule,规则,config From: https://www.cnblogs.com/architectforest/p/18502972