首页 > 解决方案 > 当在 textarea 中输入打开 PHP 标记时,Jquery serialize() 触发 403

问题描述

所以我最近一直在检查我的表单以检查我的 SQL 查询是否安全以及清理任何输入,并且刚刚发现输入<?文本框会在它到达处理文件之前触发 403,我只能假设它必须是与 mod_security 相关??

我的问题是,当我使用共享主机时,如果它由网络主机控制,是否不必担心。

标签: serializationmod-security

解决方案


在对提交的变量使用 jQuery 的 .serialize() 函数后,我最近遇到了通过 GET 请求向服务器提交表单数据的问题。这些是多年来完美运行的网络应用程序。事实证明,在最近的 ModSecurity 规则集更新后,我在 Comodo 的 WAF 规则集中触发了 211700(HTTP 重定向)和 217280(走私攻击)规则,服务器与 ModSecurity 一起使用。我没有收到 403。我的 IP 地址被防火墙阻止了。:(

修复将我的 AJAX 代码切换为使用 POST 而不是 GET,而不是使用 .serialize()。我仍然有一些网络应用程序通过 AJAX 使用 .serialize() 和 GET 请求而不触发 ModSecurity,所以我相信传递可疑字符也是必要的,正如你所发现的,尽管在我的测试中,我使用的只是括号。

由于您在共享服务器上,因此可能不可能(或值得您花时间)找出主机使用的规则集,因此您最好的选择是最有可能将您的表单提交切换为使用 POST 而不是 GET ,而不是使用 .serialize()。我认为这些规则的存在是有原因的,更好的方法是避免让我的代码看起来像是在做一些邪恶的事情,而不是禁用这些规则。


推荐阅读