如何阻止用户发送邮件请求?例如,表单通过Ajax post提交。使用firebug我可以看到帖子请求,但是我注意到这个请求可以通过右键单击并选择“在新标签中打开”轻松重复“我该如何防止这样的事情?”
答案 0 :(得分:3)
当有效用户登录或开始会话时,生成随机令牌字符串并将其放在隐藏的表单字段中。每次有效用户发布有效帖子时,生成随机令牌字符串并将其存储在$_SESSION
中,同时将其返回到客户端浏览器。当浏览器发出另一个Ajax发布请求时,它还必须发送您与$_SESSION
进行比较的令牌字符串。
这样,如果您的服务器之前已批准它,您只能发布Ajax帖子。它可以防止任何只知道Ajax处理程序URL的人向其发送HTTP请求。
答案 1 :(得分:0)
你不能可靠。但是您可以检查HTTP_X_REQUESTED_WITH
标题,通常与ajax请求一起发送。它可能是欺骗性的,也不能用于真正的ajax请求。
答案 2 :(得分:0)
任何网络表单都可以通过多种方式发布。您需要做的是确保处理表单的服务器端脚本具有“忽略”垃圾请求所需的逻辑。