AngularJS:如何防止从客户端程序化点击点击AJAX端点的按钮

AngularJS: how to prevent programmatic clicking of button that hits AJAX endpoint from client?

本文关键字:AJAX 按钮 端点 程序化 何防止 客户端 AngularJS      更新时间:2023-09-26

我发现我的应用程序存在安全漏洞,我想修复它。

在我的主页上有一个按钮,当点击它时,它会触发在我的数据库中创建一个记录。我想防止有人以编程方式点击这个按钮无数次,实际上在我的数据库中创建了无数条记录。

我试着创建一个函数,在点击按钮后设置disabled="true",但似乎程序循环和点击会让它发挥作用。

有什么关于如何修补这个洞的建议吗?

如前所述,无法保证客户端的安全性。但这并不意味着在访问后端之前进行一些客户端检查是没有用的。一个有用的技术是使用javascript定时器,正如建议的那样CCD_ 2。在后端,您可能需要将一些信息放在会话中,最好不要放在数据库中,以减少数据库命中率。