Ich habe viele Probleme mit Mod Security. Ich bin beschäftigt, ein CMS für ein Projekt bei der Arbeit zu schreiben, und während ich eine Seite entwickelte, um einen bestimmten Datenbankeintrag zu bearbeiten, bekam ich 403 Fehler. Nach Stunden, in denen ich meinen Kopf gegen meinen Schreibtisch schlug und einige Bits des Codes änderte, änderte ich schließlich das Skript, in dem mein Formular veröffentlicht wurde, um ein einfaches echo "test";
zu enthalten. Selbst das Einreichen dieser einfachen Seite führte zu einem 403 Fehler. Ich habe mit meinem Formular herumgespielt und ich habe schließlich festgestellt, dass, wenn ich die Menge der Daten reduziert habe, die ich gepostet habe, das vorgelegte Formular gut war (insbesondere reduziere ich die Menge an Text in einem Textfeld).
Nachdem ich die Protokolle überprüft hatte (ja, das war nicht das erste, was ich getan habe - Seufzer), bemerkte ich, dass ich zahlreiche Fehler von ModSecurity bekam, wie zum Beispiel:
%Vor% Ich habe herumgeschaut, gegoogelt und tagelang die Regeln geändert, ohne Erfolg. Das einzige, was ich zu tun vermag, ist, ModSecurity für diesen vhost auszuschalten. Das ist für mich in Ordnung, während ich das CMS entwickle, aber in der Produktion ist das nicht wirklich etwas, was ich machen möchte. Hat jemand irgendwelche Ideen, was dieses Problem verursacht und wie man es sortiert? Die Logs scheinen auf einige Regeln zu verweisen, die mit Limits für reguläre Ausdrücke zu tun haben, aber seit ich mein Post-Receiving-Skript geändert habe, um das Wort Test auszudrucken, mache ich nichts mit ihnen (obwohl ich versucht habe, die Grenzen durch SecPcreMatchLimit
zu erhöhen) und SecPcreMatchLimitRecursion
). Es scheint eher, dass etwas mit der Menge an Daten, die ich sende, nicht stimmt.
Ich hatte vor einigen Wochen ein ähnliches Problem mit dem PCRE-Modul und es war mit backtrack_limits verwandt.
Ich nehme an, dass SecPcreMatchLimit
und SecPcreMatchLimitRecursion
mit mod_security zusammenhängen, aber hast du versucht, die Werte für das pcre-Modul in deiner php.ini-Datei oder während der PHP-Ausführungszeit zu erhöhen?
pcre.backtrack_limit
und pcre.recursion_limit
Sie können auch bestätigen, dass das Problem mit PCRE-Limits mit der folgenden Funktion preg_last_error()
Sie können mehr hier sehen: Ссылка
und hier: Ссылка
Ich hoffe, das hilft.
Ich habe gerade ein ähnliches Problem gelöst, mit einer großen Post, die PCRE-Limit-Fehler in mehreren Regeln auslöst. Ich finde es falsch, wenn die Mod-Sicherheit die Anfrage als bösartig markiert, nur weil sie explodiert ist!
Ich habe die beiden Einstellungen, die Sie erwähnt haben, von 500 auf 1500 erhöht, wie in diesem Beitrag empfohlen, und es hat mein Problem gelöst.
Die Standardwerte für das PCRE-Match-Limit sind sehr, sehr niedrig mit ModSicherheit. Du kannst bis zu 500K erreichen, ohne dein Set zu beschädigen. Aber Zu Ihrer Information: Das PCRE-Match-Limit soll das reduzieren Chance für einen DoS-Angriff über Reguläre Ausdrücke. Also, indem Sie die Sie begrenzen Ihre Sicherheitslücke in dieser Hinsicht, aber die PCRE-Fehler sind aus Sicherheitssicht viel schlimmer. Ich laufe mit 500K in prod normalerweise:
SecPcreMatchLimit 500000 SecPcreMatchLimitRecursion 500000
Siehe auch Ссылка
Tags und Links php security apache post mod-security