所以我最近一直在浏览我的表单以检查我的SQL查询是否安全以及对任何输入进行清理,并且刚刚发现在文本框中输入<?
会触发403然后才会触及处理文件,我只能假设它必须与mod_security?
我的问题是,如果我使用共享托管,它是否由网络托管商控制,这是不是在担心。
答案 0 :(得分:1)
我最近在使用jQuery的.serialize()函数为提交的变量后,通过GET请求向服务器提交表单数据时遇到了问题。这些都是已经运行了无数年的网络应用程序。事实证明,在最近的ModSecurity规则集更新之后,我触发了Comodo WAF规则集中的211700(HTTP重定向)和217280(走私攻击)规则,该服务器与ModSecurity一起使用。我没有收到403。我的IP地址被防火墙阻止了。 :(
此修复程序将我的AJAX代码切换为用于POST而不是GET,并且不使用.serialize()。我仍然有一些Web应用程序通过AJAX使用.serialize()和GET请求而不触发ModSecurity,所以我相信也有必要传递可疑字符,正如您所发现的,尽管在我的测试中,我使用的只是括号。 / p>
由于您位于共享服务器上,因此可能(或不花时间)找出主机正在使用的规则集,因此最好的选择是最有可能将表单提交切换为使用POST而不是GET,并且不要使用.serialize()。我认为这些规则的存在是有原因的,更好的方法是避免使我的代码看起来像在做有害的事情,而不是禁用规则。