在我的网站上,我为博客文章创建了评论部分。用户可以编写评论,单击按钮,AJAX 请求将发送到包含 JSON 数据的 PHP。 PHP 将处理和验证数据,然后将其插入数据库。成功后,将从数据库中检索所有评论,并使用 JQuery 重新加载页面的所有评论。
问题是任何人都可以使用浏览器的控制台伪造 AJAX 请求,填写自己的 JSON,然后将请求发送到 PHP。如果这样做,所发生的一切就是我的客户端验证毫无用处。服务器端验证仍然有效。然而,还有一个更大的问题。
for(var i = 0; i < 10000; i++) {
//ajax request
}
用户可以非常轻松地立即将成千上万条记录插入我的数据库中。
有人对我如何防止此类事情发生有任何建议吗?它必须涉及在服务器端创建用户无法猜测的内容,并在 AJAX 请求期间以某种方式对其进行检查。我只是不确定具体该怎么做。
谢谢您的帮助。
在这方面确保您安全的唯一方法是添加验证码。
这将防止大量/自动发帖。一种可能使用的库是安全图像 https://www.phpcaptcha.org/。它易于使用和集成。您可以使用 AJAX 工具在 10 分钟内运行它。
如果可能的话,依赖其他方式(例如 cookie 或某种客户端验证)是有风险的。例如KA_lin https://stackoverflow.com/users/476543/ka-lin的解决方案可能会在 5 分钟内受到损害:恶意用户可以发送伪造的 cookie,该 cookie 的页数始终为 0,因此始终允许发帖。或者更糟糕的是,他可以创建一个小程序,将其发布到您的页面而不发送任何 cookie。上面的代码每次都会创建一个新的cookie并接受他的帖子......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)