mod_security - PCRE सीमा पार हो गई


11

बस हर अनुरोध पर मुझे निम्नलिखित त्रुटि मिल रही है:

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

ग) एक संस्करण का उपयोग करें जो -disable-pcre-match-limitविकल्प के साथ संकलित किया गया था ।


मैं निम्नलिखित चला रहा हूँ:

Apache / 2.5.12 ( http://www.modsecurity.org/ ) के लिए मॉडसैक्विटी ।

Apache / 2.2.16 (डेबियन) PHP / 5.3.3-7 + निचोड़ 8 के साथ सुहोसिन-पैच mod_ssl / 2.2.16 OpenSSL / 0.9.8

मेरे नियमों के लिए, मैं OWASP ModSecurity Core Rule Set Project संस्करण (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 उनकी स्थापित फ़ाइल में है। मैंने 15000000 और 100000000000 और अधिक के लिए pcre सीमा भी निर्धारित की है, लेकिन उपलब्ध नहीं है।

तो निष्कर्ष में:

समाधान aऔर bकाम नहीं कर रहे हैं, और मैं नहीं करना पसंद करते हैं c... के रूप में मैं वास्तव में समझ नहीं / संकलन पसंद है।

किसी के पास कोई अन्य विचार है?


मेरे पास नवीनतम कोर नियमों और mod_security स्रोत कोड का उपयोग करने के साथ ही यह है कि मैंने अभी डाउनलोड किया है। मैं इन त्रुटियों के लिए एक रेल अनुप्रयोग, PHP नहीं मिल रहा है।
डॉगवेदर

जवाबों:


7

पवित्र पुनरावृत्ति, बैटमैन!

मेरा दावा है कि आपके mod_security नियमों में कुछ गड़बड़ है। इस तरह की पुनरावृत्ति अनावश्यक प्रतीत होती है और इससे आपके सर्वर के लिए कुछ गंभीर भार होने की संभावना होगी। नियमों और / या अपाचे विन्यास को ठीक करें, और मनमाने ढंग से बड़ी संख्या के साथ इस समस्या को "ठीक" करने की कोशिश न करें।


4

यह करीब से देखने के रूप में मैं वास्तव में एक ही मुद्दा है और अपने विन्यास मेरा समान दिखता है। मैं modsecurity का पहला टाइमर हूँ, यह बिल्कुल noob के अनुकूल नहीं है!

जैने से सहमत। मेरे पास अभी तक केवल सलाह है कि सभी मुख्य नियमों को हटा दें और समस्या को कम करने के लिए उन्हें 1 से फिर से शुरू करें। मैं अब ऐसा करने वाला हूं।

इसके अलावा, आपको अपने नियम इंजन सेटिंग को बदलना चाहिए

SecRuleEngine DetectionOnly

कॉन्फ़िगर मुद्दों के माध्यम से काम करते समय, यह आपको लागू किए बिना निगरानी करने की अनुमति देगा - आप नियमों को लागू नहीं करना चाहते हैं जबकि आप अभी भी सुनिश्चित नहीं हैं कि वे वही कर रहे हैं जो आप चाहते हैं।

यदि आपको कोई समाधान मिलता है तो कृपया अपनी सीख के साथ पोस्ट करें।


0
SecPcreMatchLimit 150000
SecPcreMatchLimitRecursion 150000

पाया जाना चाहिए और कुछ * निक्स संस्करणों पर mod_security config फाइल में बदला जाना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.