Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php AJAX post返回403(有时)_Php_Jquery_Ajax - Fatal编程技术网

Php AJAX post返回403(有时)

Php AJAX post返回403(有时),php,jquery,ajax,Php,Jquery,Ajax,我有一个管理页面(由一个文本区域组成),并使用ajax和PHP将我的帖子保存到数据库中。有时ajax返回403,有时不返回。PHP工作得很好,但AJAX除外 阿贾克斯 我注意到,当我写一些特殊字符或一些在SQL中有意义的单词时,得到403。所以,我决定创建一个方法。例如,我写的不是“SELECT”,而是quoquoSELECTquoquo。因此,AJAX将单词quoquoSELECTquoquo发送到PHP时不会出错。PHP将QuoQuoSelectQuoQuoQuoQuo更改为“SELECT”

我有一个管理页面(由一个文本区域组成),并使用ajax和PHP将我的帖子保存到数据库中。有时ajax返回403,有时不返回。PHP工作得很好,但AJAX除外

阿贾克斯

我注意到,当我写一些特殊字符或一些在SQL中有意义的单词时,得到403。所以,我决定创建一个方法。例如,我写的不是“SELECT”,而是quoquoSELECTquoquo。因此,AJAX将单词quoquoSELECTquoquo发送到PHP时不会出错。PHP将QuoQuoSelectQuoQuoQuoQuo更改为“SELECT”,可以完美地将其保存到数据库中。但是,有很多单词或字符。所以我必须在ajax和php之间做很多更改

  • 所以,正如我所知,这个问题与mod_安全有关。服务器的防火墙不接受某些单词和字符。但我不想因为SQL注入而禁用mod_安全性。我只是对几个文件禁用了mod_安全性
  • 如果没有,有什么简单的方法可以做到这一点。我至少做了30次修改,但还是有一些生词或简单字符出错。所以我受够了一次又一次地改变单词和字符
一些错误和成功的例子

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.

列表还在继续…

试着关闭Mod Security&看看是否有效。
我最近在对php脚本的ajax调用中遇到了403个错误,如果帖子的内容包含“include”一词,则会出现403个错误。关闭mod security可以让它一直工作,直到我们发现有错误的规则。

尝试关闭mod security&看看是否有效。
我最近在对php脚本的ajax调用中遇到了403个错误,如果帖子的内容包含“include”一词,则会出现403个错误。关闭mod security可以让它一直工作,直到我们找到错误的规则。

IIRC,mod_security在禁止请求时发送406,而不是403。检查您的mod_安全日志。这闻起来更像我检查您的日志,或向您的主机寻求帮助。我已向我的主机寻求帮助。他们说,要么他们可以为导致错误的单词创建一个白名单,要么完全禁用mod_安全。他们无法为某些页面创建白名单。IIRC,mod_security在禁止请求时发送406,而不是403。检查您的mod_安全日志。这闻起来更像我检查您的日志,或向您的主机寻求帮助。我已向我的主机寻求帮助。他们说,要么他们可以为导致错误的单词创建一个白名单,要么完全禁用mod_安全。他们无法为某些页面创建白名单。
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.