Chỉ cần về mỗi yêu cầu tôi nhận được lỗi sau:
Rule execution error - PCRE limits exceeded (-8): (null).
Sau một loạt các googling, các giải pháp duy nhất dường như là
a) Thêm phần sau vào httpd.conf của bạn
SecPcreMatchLimit 150000
SecPcreMatchLimitRecursion 150000
b) Thêm phần sau vào php.ini của bạn
pcre.backtrack_limit = 10000000
pcre.recursion_limit = 10000000
c) Sử dụng một phiên bản được biên dịch với -disable-pcre-match-limit
tùy chọn.
Tôi đang chạy như sau:
ModSecurity cho Apache / 2.5.12 ( http://www.modsecurity.org/ ).
Apache / 2.2.16 (Debian) PHP / 5.3.3-7 + bóp 8 với Suhosin-Patch mod_ssl / 2.2.16 OpenSSL / 0.9.8
Đối với ModSec các quy tắc của tôi, tôi đang sử dụng phiên bản Dự án Bộ quy tắc lõi (CRS) của OWASP ModSecurity phiên bản 2.2.3, phiên bản mới nhất kể từ bài đăng này.
Httpd.conf của tôi bao gồm chủ yếu:
<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>
Trong đó trong modsecurity.d
thư mục của tôi chỉ có tất cả các quy tắc mặc định CRS có trong tệp cài đặt của họ. Tôi cũng đã đặt giới hạn pcre thành 150000000 và 100000000000 trở lên, nhưng không có sẵn.
Vì vậy, trong kết luận:
các giải pháp a
và b
không hiệu quả, và tôi không muốn làm gì cả c
... vì tôi không thực sự hiểu / thích biên dịch.
Bất cứ ai có ý tưởng nào khác?