【发布时间】:2011-09-30 22:50:21
【问题描述】:
如何防止用户发送垃圾邮件请求?例如,通过 Ajax post 提交表单。使用萤火虫我可以看到发布请求,但我注意到这个请求可以通过右键单击它并选择“在新选项卡中打开”轻松重复我如何防止这样的事情发生?
【问题讨论】:
标签: php javascript ajax security xmlhttprequest
如何防止用户发送垃圾邮件请求?例如,通过 Ajax post 提交表单。使用萤火虫我可以看到发布请求,但我注意到这个请求可以通过右键单击它并选择“在新选项卡中打开”轻松重复我如何防止这样的事情发生?
【问题讨论】:
标签: php javascript ajax security xmlhttprequest
当有效用户登录或开始会话时,生成一个随机令牌字符串并将其放置在隐藏的表单字段中。每次有效用户发布有效帖子时,都会生成一个随机令牌字符串并将其存储在$_SESSION 中,同时还将其返回给客户端浏览器。当浏览器发出另一个 Ajax 发布请求时,它还必须发送与 $_SESSION 进行比较的令牌字符串。
这样,您只能在您的服务器之前批准的情况下发布 Ajax 帖子。它可以防止任何只知道 Ajax 处理程序 URL 的人向它发送 HTTP 请求。
【讨论】:
任何网络表单都可以通过多种方式发布。您需要做的是确保处理表单的服务器端脚本具有“忽略”垃圾邮件请求所需的逻辑。
【讨论】:
你不能可靠。但是您可以检查HTTP_X_REQUESTED_WITH 标头,它通常 与ajax 请求一起发送。但它可以被欺骗,也不能用于真正的 ajax 请求。
【讨论】: