REMOTE_PORT
这个变量保存客户端连接Web服务器的源端口。例如在下面这个例子里,我们正检查REMOTE_PORT是否小于1024,如果是那么即表明这个用户是特权用户。
SecRule REMOTE_PORT "@lt 1024" phase:1,log,pass,setenv:remote_port=privileged
REMOTE_USER
这个变量保存的是授权用户的用户名。如果没有密码(基本|摘要)访问控制措施,那么,这个变量将是空的。例如:
SecRule REMOTE_USER "admin"
注意:
此数据在代理模式不可用因为不是本地授权。
REQBODY_PROCESSOR
内置处理器是URLLENCODED,MULTIPART
和XML。例如:
SecRule REQBODY_PROCESSOR "^XML$ chain
SecRule XML "@validateDTD /opt/apache-frontend/conf/xml.dtd"
REQBODY_PROCESSOR_ERROR
可选值是0(没有错误)或1(错误)。当不能恰当地解析一个请求时,这个变量将由请求体处理器设置(通常是multipart/request-data
解析器或 XML解析器)。
例如:
SecRule REQBODY_PROCESSOR_ERROR "@eq 1" deny,phase:2
注意
你的策略必须有一个规则在第二阶段开始检查REQBODY_PROCESSOR_ERROR。不这样做将开启阻抗不匹配攻击的大门,例如,一个加载不能被ModSecurity解析但能被其他更宽泛的解析器解析。如果你的策略设定拦截,那么当检测到错误你应该拒绝该请求。在只读模式运行时当请求体处理失败你应该提高警惕。