如何防止来自ajax的POST请求(通过firebug获得)

时间:2011-07-08 02:26:09

标签: php javascript ajax security xmlhttprequest

如何阻止用户发送邮件请求?例如,表单通过Ajax post提交。使用firebug我可以看到帖子请求,但是我注意到这个请求可以通过右键单击并选择“在新标签中打开”轻松重复“我该如何防止这样的事情?”

3 个答案:

答案 0 :(得分:3)

当有效用户登录或开始会话时,生成随机令牌字符串并将其放在隐藏的表单字段中。每次有效用户发布有效帖子时,生成随机令牌字符串并将其存储在$_SESSION中,同时将其返回到客户端浏览器。当浏览器发出另一个Ajax发布请求时,它还必须发送您与$_SESSION进行比较的令牌字符串。

这样,如果您的服务器之前已批准它,您只能发布Ajax帖子。它可以防止任何只知道Ajax处理程序URL的人向其发送HTTP请求。

答案 1 :(得分:0)

你不能可靠。但是您可以检查HTTP_X_REQUESTED_WITH标题,通常与ajax请求一起发送。它可能是欺骗性的,也不能用于真正的ajax请求。

答案 2 :(得分:0)

任何网络表单都可以通过多种方式发布。您需要做的是确保处理表单的服务器端脚本具有“忽略”垃圾请求所需的逻辑。