精确复制: 如何在服务器端处理多个提交
当前的一般任务:防止在多用户基于 Web 的应用程序中提交双重表单。想想金融交易。
我有两种可以同时使用的方法:
- JavaScript disabling of button
- 缺点:如果 JavaScript 被禁用则不起作用
- Back-end verfication - see how long ago the last request of this type came from this user and issue error if not too long ago
- 缺点:如果两个提交的内容足够接近,则每个提交可能无法知道另一个
我正在寻找主题专家来贡献他们的最佳实践以及深奥的技巧。可以是任何语言和框架,但 Django 是特别感兴趣的。网络上已经写了很多关于手头任务的文章,但最好能在这里展示最佳实践。
常见的解决方案是每次生成表单时在服务器上生成一个令牌。将令牌存储在服务器上,将其作为隐藏字段添加到表单中,并在收到使用该令牌的表单提交后将其删除。
如果您收到没有有效令牌的表单提交,则意味着该表单已经提交并忽略它。
这具有向您的项目添加 XSRF 保护的额外优势。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)