【发布时间】:2015-06-02 12:30:08
【问题描述】:
在我的网站上,我为博客文章创建了一个评论部分。用户可以编写 cmets,单击一个按钮,一个 AJAX 请求将被发送到 PHP,其中包含 JSON 格式的数据。 PHP 将处理和验证数据,然后将其插入数据库。成功后,将从数据库中检索所有 cmets,并使用 JQuery 重新加载页面的所有 cmets。
问题是任何人都可以使用浏览器控制台伪造 AJAX 请求,填写自己的 JSON,然后将请求发送到 PHP。如果这样做,所发生的一切都是我的客户端验证是无用的。服务器端验证仍然有效。但是,还有一个更大的问题。
for(var i = 0; i < 10000; i++) {
//ajax request
}
用户可以非常轻松地立即将成千上万条记录插入我的数据库。
有人对我如何防止此类事情发生有任何建议吗?它必须涉及在服务器端创建用户无法猜到的东西,并在 AJAX 请求期间以某种方式对其进行检查。我只是不确定该怎么做。
感谢您的帮助。
【问题讨论】:
-
有人可以通过简单地查看发送 ajax 请求的地址并用任何语言(如 shell 脚本和 curl)编写脚本来发送带有数据的连续请求来做同样的事情。谷歌“对 php 的速率限制”。
标签: javascript php jquery ajax json