À peu près à chaque demande, j'obtiens l'erreur suivante:
Rule execution error - PCRE limits exceeded (-8): (null).
Après un tas de googler les seules solutions semblent être
a) Ajoutez ce qui suit dans votre httpd.conf
SecPcreMatchLimit 150000
SecPcreMatchLimitRecursion 150000
b) Ajoutez ce qui suit à votre php.ini
pcre.backtrack_limit = 10000000
pcre.recursion_limit = 10000000
c) Utilisez une version qui a été compilée avec -disable-pcre-match-limit
option.
J'exécute ce qui suit:
ModSecurity pour Apache / 2.5.12 ( http://www.modsecurity.org/ ).
Apache / 2.2.16 (Debian) PHP / 5.3.3-7 + squeeze8 avec Suhosin-Patch mod_ssl / 2.2.16 OpenSSL / 0.9.8
Pour ModSec mes règles, j'utilise la version 2.2.3 du projet de jeu de règles de base OWASP ModSecurity (CRS) qui est la plus récente de cette publication.
Mon httpd.conf se compose essentiellement:
<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>
Dont l'intérieur de mon modsecurity.d
répertoire est juste toutes les règles par défaut CRS a dans leur fichier d'installation. J'ai également défini les limites de pcre à 150000000 et 100000000000 et plus, mais pas disponibles.
Donc en conclusion:
solutions a
et b
ne fonctionnent pas, et je préfère grandement ne pas le faire c
... car je ne comprends pas vraiment / comme compiler.
Quelqu'un a d'autres idées?
la source
Réponses:
Sainte récursivité, Batman!
Je prétends que vous avez un problème avec vos règles de mod_security. Ce type de récursion semble inutile et entraînera très probablement une charge sérieuse pour votre serveur. Corrigez les règles et / ou la configuration Apache, et n'essayez pas de "résoudre" ce problème avec des nombres arbitrairement grands.
la source
Regarder cela de près car j'ai exactement le même problème et votre configuration ressemble à la mienne. Je suis un premier temporisateur de modsecurity, ce n'est pas exactement convivial noob!
D'accord avec Janne. Le seul conseil que j'ai jusqu'à présent est de supprimer toutes les règles fondamentales et de les réintroduire 1 par 1 pour commencer à réduire le problème. Je suis sur le point de le faire maintenant.
Vous devez également modifier le paramètre de votre moteur de règles sur
tout en travaillant sur les problèmes de configuration, cela vous permettra de surveiller sans appliquer - vous ne voulez pas appliquer les règles pendant que vous n'êtes toujours pas sûr de faire ce que vous voulez.
Veuillez publier votre retour d'apprentissage si vous trouvez une solution.
la source
Le doit être trouvé et modifié dans les fichiers de configuration de mod_security sur certaines versions * nix.
la source