我已经构建了一个PHP注册系统,我已经使用了很多年。
最近,有人试图注册,他们的账单地址包含"Northwind“一词。这将由CPanel中的ModSecurity标记并立即被拒绝。
在过去,我通过对较大的文本区域进行编码和解码来解决ModSecurity问题,然而,对于每个字段这样做似乎都很痛苦。
对于这些被ModSecurity标记的异常情况,有人有什么建议吗?除了禁用ModSecurity之外,我不打算这样做。
发布于 2021-07-10 02:15:55
我假设this rule阻止了这个请求。你不需要关掉整个引擎。我不知道cPanel (以及它的ModSecurity图形用户界面/访问),但如果您可以例外,请尝试添加以下内容:
SecRule REQUEST_FILENAME "@streq /your/app/registration/uri.php" \
"id:1110,\
phase:1,\
pass,\
nolog,\
ctl:ruleRemoveTargetById=942140;ARGS:username_on_your_form"您可以将此排除添加到REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf中。如果它不存在,只需创建它,并设置引擎使用它。重新启动您的web服务器,并尝试使用该名称注册。
此规则的几点注意事项:
/your/app/registration/uri.php)是客户端发送注册请求的URI,请确保在ctl操作的末尾键入正确的值username_on_your_form是表单包含的字段,请替换正确的值此规则进行排除:如果URI匹配,则规则942140将不检查表单域username_on_your_form。
https://stackoverflow.com/questions/68320724
复制相似问题