Quasi ogni volta che ricevo il seguente errore:
Rule execution error - PCRE limits exceeded (-8): (null).
Dopo un po 'di ricerche su google le uniche soluzioni sembrano essere
a) Aggiungi quanto segue nel tuo httpd.conf
SecPcreMatchLimit 150000
SecPcreMatchLimitRecursion 150000
b) Aggiungi quanto segue al tuo php.ini
pcre.backtrack_limit = 10000000
pcre.recursion_limit = 10000000
c) Utilizzare una versione compilata con l' -disable-pcre-match-limit
opzione.
Sto eseguendo il seguente:
ModSecurity per Apache / 2.5.12 ( http://www.modsecurity.org/ ).
Apache / 2.2.16 (Debian) PHP / 5.3.3-7 + squeeze8 con Suhosin-Patch mod_ssl / 2.2.16 OpenSSL / 0.9.8
Per ModSec le mie regole, sto usando OWASP ModSecurity Core Rule Set Project versione (CRS) versione 2.2.3 che è la più recente al momento della pubblicazione.
Il mio httpd.conf è costituito essenzialmente da:
<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>
Di cui all'interno della mia modsecurity.d
directory ci sono solo tutte le regole predefinite che CRS ha nel loro file di installazione. Ho anche impostato i limiti di PCRE su 150000000 e 100000000000 e oltre, ma non disponibili.
Quindi in conclusione:
soluzioni a
e b
non funzionano, e preferisco di gran lunga non farlo c
... poiché non capisco davvero / mi piace compilare.
Qualcuno ha altre idee?