我有一个管理页面(由textarea组成)并使用ajax和PHP将我的帖子保存到数据库中。有时ajax返回403,有时不返回。 PHP工作得很好但是AJAX。
AJAX
serdata = 'text='+$("#ptext").val();
$.ajax({
type:"POST",
url:"../check/postcheck.php",
data:serdata,
cache:false,
success:function(result){
some html works
},
error:function(error){
some html works
}
});
我注意到,当我写一些特殊字符或一些在SQL中有意义的单词时,得到403.所以,我决定创建一个方法。例如,改为“SELECT”,我写quoquoSELECTquoquo。所以AJAX发送单词quoquoSELECTquoquo到PHP没有错误。 PHP将quoquoSELECT改为“SELECT”,可以完美地保存到数据库中。但是,有很多单词或字符。所以我必须在ajax和php之间做很多改动。
错误和成功的一些例子,
AJAX sends quoquoselectquoquo , PHP changes it to "select" , no error.
AJAX sends quoquoselect" , PHP changes it to "select" , no error.
AJAX sends "select" , error 403.
AJAX sends (select) , sometimes error 403, sometimes no error
AJAX sends prnthsselect) , PHP changes it to (select) , no error.
AJAX sends & , error 403.
AJAX sends ndsymbl , PHP changes it to & , no error.
并且列表继续......
答案 0 :(得分:0)
尝试将其关闭Mod Security,然后查看是否可行。 我最近在从ajax调用到php脚本中遇到403错误时遇到了麻烦-如果帖子的内容包含单词“ include”,则将显示403错误。关闭mod-security使其起作用,直到我们发现存在错误的规则。