ほぼすべてのリクエストで、次のエラーが表示されます。
Rule execution error - PCRE limits exceeded (-8): (null).
たくさんのグーグルの後、唯一の解決策は
a)httpd.confに以下を追加します
SecPcreMatchLimit 150000
SecPcreMatchLimitRecursion 150000
b)以下をphp.iniに追加します
pcre.backtrack_limit = 10000000
pcre.recursion_limit = 10000000
c)-disable-pcre-match-limit
オプション付きでコンパイルされたバージョンを使用します。
私は次を実行しています:
Apache / 2.5.12のModSecurity(http://www.modsecurity.org/)。
Apache / 2.2.16(Debian)PHP / 5.3.3-7 + squeeze8とSuhosin-Patch mod_ssl / 2.2.16 OpenSSL / 0.9.8
ModSecのルールについては、この投稿の最新のOWASP ModSecurityコアルールセットプロジェクトバージョン(CRS)バージョン2.2.3を使用しています。
私のhttpd.confは、本質的に次のもので構成されています。
<IfModule security2_module>
SecUploadDir /var/asl/data/suspicious
SecDataDir /var/asl/data/msa
SecTmpDir /tmp
SecAuditLogStorageDir /var/asl/data/audit
Include modsecurity.d/modsecurity_crs_10_config.conf
Include modsecurity.d/activated_rules/*.conf
SecRuleEngine On
# Debug log
SecDebugLog /var/log/apache2/modsec_debug.log
SecDebugLogLevel 3
# Serial audit log
SecAuditEngine RelevantOnly
SecAuditLogRelevantStatus ^5
SecAuditLogParts ABIFHZ
SecAuditLogType Serial
SecAuditLog /var/log/apache2/modsec_audit.log
SecPcreMatchLimit 150000
SecPcreMatchLimitRecursion 150000
</IfModule>
<IfModule mod_php5.c>
php_admin_flag pcre.backtrack_limit 10000000
php_admin_flag pcre.recursion_limit 10000000
</IfModule>
そのうち、私のmodsecurity.d
ディレクトリ内には、CRSがインストールファイルに持つすべてのデフォルトルールがあります。また、pcreの制限を150000000および100000000000以上に設定しましたが、使用できません。
結論として:
解決策a
とb
動作していませc
ん、私はしないことを大いに好みます...私は本当に理解/コンパイルが好きではないので。
誰か他のアイデアがありますか?