我需要阻止为客户的网站提交重复的表单.
>我们需要来自用户的一些表单数据以进行订单确认页面.
>我们对Web服务器使用负载平衡.
方法1:发布/重定向/获取
我最初尝试使用PRG模式.
在这种情况下,我认为我需要跨多个Web服务器处理会话(或spring flashmap).
方法2:在客户端禁用刷新.
我的一位同事提出了这种方法.
方法3:邮寄/邮寄
另一位同事提出了这种方法.
我认为方法2,3不是一个好的选择.
但我不知道这些方法的具体缺点或安全风险.
我试图谷歌,但我没有找到答案.
先感谢您.
[编辑]
我想更新优缺点.
方法1:发布/重定向/获取
利弊
>安全!
缺点
>如果您需要来自用户的某些表单数据以在确认页面上显示它,您需要使用会话,数据库或其他东西.
>如果您使用会话,并且拥有多个服务器,则必须执行某些操作以使会话可在多个服务器上使用.
方法2:在客户端禁用刷新.
利弊
缺点
>如果限制浏览器标准功能(如刷新),用户将会感到不安.
>需要考虑F5,Ctrl F5,⌘F5等,各种刷新图标.
>在移动设备中,许多Web浏览器在用户重新加载浏览器时自动刷新页面.
方法3:邮寄/邮寄
利弊
>您不必担心跨多个服务器的会话共享问题.
缺点
>第二次表单提交可能会失败.