如何让mod_securitylogging所有POST数据?

我目前有一个CentOS系统成功地将相关的mod_security动作logging到审计日志文件中。 以下是我的configuration:

<IfModule mod_security2.c> SecRuleEngine On SecAuditEngine RelevantOnly SecAuditLog /var/log/httpd/modsec_audit.log SecDebugLog /var/log/httpd/modsec_debug.log SecDebugLogLevel 0 SecRequestBodyAccess On SecDataDir /tmp SecTmpDir /tmp SecPcreMatchLimit 250000 SecPcreMatchLimitRecursion 250000 </IfModule> 

这会logging所有由于SecAuditEngine RelevantOnly设置而导致mod_security拦截/阻止请求的SecAuditEngine RelevantOnly

但是,我希望它另外logging提交给服务器的所有POST数据(不pipe状态)。 我可以通过设置SecAuditEngine On来实现这一点,但是这会logging所有的GET和POST数据,这是过分的。 我基本上想省略所有的GET数据,除非请求被截获。

任何人都可以build议如何做到这一点?

有一个打开AuditEngine POST请求的规则。

像这样(未经testing):

 SecRule REQUEST_METHOD "POST" "id:1000,phase:2,ctl:auditEngine=On,nolog,pass" 

Ctl操作仅影响当前请求,因此之后它将重置为RelevantOnly以用于下一个请求。

您还可以创buildSanitise规则,以确保在logging之前屏蔽敏感数据(如密码和信用卡数据)。 看到这里: https : //github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#sanitiseArg