在我们的制作中使用单引号上传图像或文件时抛出500内部服务器错误,但在我们的localhost和QA实例中,相同的代码工作正常。
我们已经看到了日志文件(ssl_error_log)并发现了以下错误
[Fri Nov 25 05:41:56.926603 2016] [:error] [pid 29449] [client 183.82.3.44] ModSecurity:拒绝访问代码44(阶段2)。匹配" eq 0"反对" MULTIPART_STRICT_ERROR"需要。 [file" /etc/httpd/conf.d/mod_security.conf"] [line" 31"] [id" 200002"] [msg"多部分请求体未通过严格验证:PE 0,BQ 0,BW 0,DB 0,DA 0,HF 0,LF 0,SM 0,IQ 1,IP 0,IH 0,FL 0"] [主机名&# 34; www.gatewaychamber.com"] [uri" / edit-profile /"] [unique_id" WDgVc7JgaWA0yezMJ2n @TAAAAAc"]
我们在this url找到了解决方案,方法是在我的httpd配置文件中禁用规则200002:
SecRuleRemoveById 200002
但是我们没有尝试过这个,因为我们想在服务器中禁用此功能后知道任何安全问题或逃避攻击。请提供任何解决方案或建议来解决此问题。此外,如果我们停用此规则,任何人都可以解释任何安全问题SecRuleRemoveById 200002
在modsecurity.conf
档案中。
如果应该禁用它来解决问题,请建议更好的方法来禁用此规则。或者,我们可以使用jQuery修改前端的文件名吗?
我已经看到LinkedIn和Facebook以及其他一些网站在上传时接受单引号,没有任何问题或重命名文件/图像。这怎么可能?
提前致谢。
答案 0 :(得分:0)
基于此link的信息,有一种方法可以绕过ModSecurity并潜入一些恶意的PHP代码。
最高2.6.8的ModSecurity存在此漏洞,并且应该具有规则200002。如果可以将您的ModSecurity版本升级到至少2.7.0,则不再需要该规则。 ModSecurity的当前版本是2.9.1。