allow
说明:在一个成功的匹配后停止规则处理并允许交互进行。
动作组:中断性
例如:
SecRule REMOTE_ADDR "^192\.168\.1\.100$" nolog,phase:1,allow
在ModSecurity 2.5之前的版中中allow动作只会影响当前阶段。一个第一阶段的allow将跳过第一阶段的其他规则,但第二阶段的规则还是要执行的。从v2.5.0开始allow被加强以便更好的控制,以下规则现在适用:
1.如果使用它自己,像上面这个例子,allow将影响整个交互,停止处理当前阶段而且跳过其他阶段除了日志阶段(日志阶段是特殊的,它被设计为一直执行);
2.如果使用参数”phase”,allow将导致引擎停止处理当前阶段,其他阶段像正常一样继续执行。
3.如果用参数”request”,allow将导致引擎停止处理当前阶段,下一被处理的阶段将是RESPONSE_HEADERS。
例子:
# Do not process request but process response.
SecAction phase:1,allow:request
# Do not process transaction (request and response).
SecAction phase:1,allow
如果你想允许一个响应通过,在RESPONSE_HEADERS布置一个规则并且类似地对它使用allow;
# Allow response through.
SecAction phase:3,allow
append
描述:追加文本作为参数到响应体的最后。要使这个动作起作用你必须通过设置SecContentInjection
为On,同时在你对他做修改之前也要检查输出内容类型。(例如:你不想往图片里加入东西)
。
动作组:非中断性
处理阶段:3和4。
例如:
SecRule RESPONSE_CONTENT_TYPE "^text/html" "nolog,pass,append:'<hr>Footer'"
注意
当宏扩展在其他内容里允许,你要特别注意插入用户自定义的数据字段。