【发布时间】:2015-10-23 17:36:02
【问题描述】:
我在我的 Apache 服务器上设置了一个新的 SSL 证书,现在当我尝试从 HTTPS 访问我的网站时,我收到错误消息“403 Forbidden”。
从我得到的 apache 日志文件中:
[Fri Jul 31 20:54:51.069453 2015] [:error] [pid 12132] [client **.24.36.***] ModSecurity: Rule 7fdb76085a90 [id "981172"][file "/usr/share/modsecurity-crs/activated_rules/modsecurity_crs_41_sql_injection_attacks.conf"][line "157"] - Execution error - PCRE limits exceeded (-8): (null). [hostname "example.com"] [uri "/test"] [unique_id "Vbggm6wfDPoAAC9k-CQBAAAB"]
这是上述文件的第 157 行:
SecRule REQUEST_COOKIES|!REQUEST_COOKIES:/__utm/|!REQUEST_COOKIES:/__utm/|REQUEST_COOKIES_NAMES "([\~\!\@\#\$\%\^\&\*\(\)\-\+\=\{\}\[\]\|\:\;\"\'\´\’\‘\`\<\>].*?){8,}" "phase:2,t:none,t:urlDecodeUni,block,id:'981172',rev:'2',ver:'OWASP_CRS/2.2.8',maturity:'9',accuracy:'8',msg:'Restricted SQL Character Anomaly Detection Alert - Total # of special characters exceeded',capture,logdata:'Matched Data: %{TX.1} found within %{MATCHED_VAR_NAME}: %{MATCHED_VAR}',tag:'OWASP_CRS/WEB_ATTACK/SQL_INJECTION',setvar:tx.anomaly_score=+%{tx.warning_anomaly_score},setvar:tx.sql_injection_score=+1,setvar:'tx.msg=%{rule.msg}',setvar:tx.%{rule.id}-OWASP_CRS/WEB_ATTACK/RESTRICTED_SQLI_CHARS-%{matched_var_name}=%{tx.0}"
所以我尝试禁用 mod_security 并且确实在它工作正常之后。
由于我需要保持mod_security 处于启用状态,我该如何解决这个问题?
更新
我编辑了/usr/share/modsecurity-crs/activated_rules/modsecurity_crs_41_sql_injection_attacks.conf 文件并删除了第 157 行,现在它可以工作了,但是风险呢?
【问题讨论】:
-
@GolezTrol :) 我正在阅读这篇文章stackoverflow.com/q/16560325/4458531,但我不确定我的情况
-
我对 mod_security 不太熟悉,但我链接的问题中的建议似乎很合理:1:“修复规则和/或 Apache 配置,不要尝试”用任意大的数字修复“这个问题。”和2 “删除规则并把它们一一添加回来以找到问题”。
-
@GolezTrol 是的,听起来我遇到了麻烦:(
标签: apache ssl mod-security