如何解决ModSecurity 和“北风”
我已经构建了一个 PHP 注册系统,我已经使用了多年。
最近,有人尝试注册,他们的帐单地址包含“Northwind”一词。这会被 CPanel 中的 ModSecurity 标记并立即拒绝。
过去,我通过对较大的文本区域进行编码和解码来解决 ModSecurity 问题,但是,对每个字段都执行此操作似乎很痛苦。
对于这些被 ModSecurity 标记的异常情况,有人有什么建议吗?除了禁用 ModSecurity,我不会这样做。
解决方法
我假设 this rule 阻止了该请求。您无需关闭整个引擎。我不知道 cPanel(及其 ModSecurity GUI/访问权限),但如果您有任何例外,请尝试添加以下内容:
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
中。如果它不存在,只需创建它,并设置引擎使用它。重新启动您的网络服务器,并尝试使用该名称进行注册。
此规则的一些注意事项:
- 操作符参数 (
/your/app/registration/uri.php
) 是客户端发送注册请求的 URI,请确保输入正确 - 在
ctl
操作的末尾,username_on_your_form
是表单包含的字段,替换正确的值
此规则排除:如果 URI 匹配,规则 942140 将不会检查表单字段 username_on_your_form
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。