Prawie na każde żądanie pojawia się następujący błąd:
Rule execution error - PCRE limits exceeded (-8): (null).
Po wielu googlowaniach wydaje się, że jedynym rozwiązaniem są
a) Dodaj następujące elementy do swojego httpd.conf
SecPcreMatchLimit 150000
SecPcreMatchLimitRecursion 150000
b) Dodaj następujące elementy do swojego php.ini
pcre.backtrack_limit = 10000000
pcre.recursion_limit = 10000000
c) Użyj wersji skompilowanej z -disable-pcre-match-limit
opcją.
Uruchomiam następujące:
ModSecurity for Apache / 2.5.12 ( http://www.modsecurity.org/ ).
Apache / 2.2.16 (Debian) PHP / 5.3.3-7 + squeeze8 z łatką Suhosin mod_ssl / 2.2.16 OpenSSL / 0.9.8
Do moich zasad ModSec używam OWASP ModSecurity Core Rule Set Project wersja (CRS) wersja 2.2.3, która jest najnowsza od tego postu.
Mój httpd.conf składa się zasadniczo:
<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>
Z których w moim modsecurity.d
katalogu są tylko wszystkie domyślne reguły CRS w pliku instalacyjnym. Ustawiłem również limity pcre na 150000000 i 100000000000 i więcej, ale na niedostępne.
Podsumowując:
rozwiązania a
i b
nie działają, i wolę nie robić c
... ponieważ tak naprawdę nie rozumiem / lubię kompilować.
Czy ktoś ma jakieś inne pomysły?