Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 防止双重提交表格_Html_Forms_Double Submit Prevention - Fatal编程技术网

Html 防止双重提交表格

Html 防止双重提交表格,html,forms,double-submit-prevention,Html,Forms,Double Submit Prevention,精确副本: 当前的一般任务是:在基于web的多用户应用程序中防止双重表单提交。想想金融交易 我有两种方法可以同时使用: 禁用按钮的JavaScript 缺点:如果禁用JavaScript,则无法工作 后端验证-查看此类型的最后一个请求来自此用户的时间,如果不是太久,则发出错误 缺点:如果两个提交的内容足够接近,则每个提交的内容可能无法意识到另一个 我正在寻找主题专家,以贡献他们的最佳实践以及深奥的技巧。可以是任何语言和框架,但Django特别感兴趣。关于手头的任务,web上已经写了很多文

精确副本

当前的一般任务是:在基于web的多用户应用程序中防止双重表单提交。想想金融交易

我有两种方法可以同时使用:

  • 禁用按钮的JavaScript
    • 缺点:如果禁用JavaScript,则无法工作
  • 后端验证-查看此类型的最后一个请求来自此用户的时间,如果不是太久,则发出错误
    • 缺点:如果两个提交的内容足够接近,则每个提交的内容可能无法意识到另一个

  • 我正在寻找主题专家,以贡献他们的最佳实践以及深奥的技巧。可以是任何语言和框架,但Django特别感兴趣。关于手头的任务,web上已经写了很多文章,但最好在这里展示最佳实践。

    常见的解决方案是每次生成表单时在服务器上生成令牌。将令牌存储在服务器上,将其作为隐藏字段添加到表单中,并在收到带有该令牌的表单提交后将其删除

    如果您在没有有效令牌的情况下收到表单提交,则表示该表单已经提交并忽略它


    这还有一个额外的优点,就是为您的项目添加XSRF保护

    这已经结束了,但类似的问题在哪里?双重提交预防标签不会带来完全相同的问题场景。