我很想知道人们如何处理这个问题。
我有一个网站,只有一个表单(使用div 显示/隐藏部分,所以它看起来像三个页面(和一个提交按钮。表单通过jQuery AJAX POST提交到我的WebAPI方法。我不希望人们能够在快速提交中多次发送 POST。
我在单击它时禁用了"提交"按钮,但这并不能阻止有人在控制台中编写脚本以重复调用该方法。他们可以查看javascript,查看URL,然后POST到它。
我听说过 API 密钥,但我认为它们不适用于这里,因为没有登录网站。如果有,重复请求仍然需要密钥。
我想我可以使用验证码...但是还有哪些其他选择可用?
最有用的方法是在表单中使用csrf令牌。CSRF 令牌将在每次表单提交后更新。
您可以轻松防止重复请求。
在此处查找更多信息https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(企业社会责任(_Prevention_Cheat_Sheet