owasp 规则的语法错误

Syntax error on owasp rules

已编辑:我的最后一步是删除空格和其他一些修改。仍然没有结果

我为 modsecurity-crs 规则创建了 whitelist.conf。

我放那个简单的代码

<LocationMatch "/"> </LocationMatch>

结果是

httpd: Syntax error on line 420 of /usr/local/apache/conf/httpd.conf: Syntax error on line 14 of /usr/local/apache/conf.d/mod_security.conf: Syntax error on line 1 of /usr/local/apache/modsecurity-crs/activated_rules/whitelist.conf: /usr/local/apache/modsecurity-crs/activated_rules/whitelist.conf:1: was not closed. [FAILED]

怎么会是语法错误呢? 我真的坚持了这一点。

注意:如果我输入一个空的 fail,请不要 fai 并且显然什么都不做。 如果 put </LocationMatch> 失败是关于未检测到 <LocationMatch> 开始标记。

似乎根本不认识</LocationMatch>。 这里的例子 https://wordpress.org/support/topic/disable-mod-security

更新: 我真的认为捆绑的(在一些我不会提到的托管包中)CSR 确实包含一些错误,因为我使用它而根本没有修改它,所以,从一开始就有问题。阅读后没有任何效果,所以我只是留下了证明这一点的托管软件。我不会期望没有自定义调整的最新 CSR 会出现这种奇怪的行为。谢谢。

首先你要找出哪个规则阻止了你的脚本。

您可以在文件中找到错误和规则 ID "modsec_audit.log"

所有触发 ModSecurity 事件(如检测到的)或服务器错误的请求都会被记录 ("RelevantOnly") 并记录到此文件中。

此文件必须位于 /usr/local/apache/logs/modsec_audit.log 或 /var/log/httpd/modsec_audit.log

打开文件:/usr/local/apache/modsecurity-crs/activated_rules/whitelist.conf

因此,您可以使用以下代码禁用该文件的规则:

<LocationMatch "/patchtofile">
    SecRuleRemoveById 000000
</LocationMatch>

您必须替换 patchtofile > file you got error on modsec_audit.log,并且您需要将 000000 替换为您在日志文件中找到的规则 ID。对于您发现的每个文件和错误,您都必须这样做。

你也可以禁用你想要的整个目录的规则:

<LocationMatch "/patchtodir">
    SecRuleRemoveById 000000
</LocationMatch>

将 patchtodir 替换为目录 patch 并替换规则 Id