![](/img/trans.png)
[英]Why does Java Pattern class use a factory method rather than constructor?
[英]Why PRG pattern rather than others?
我需要阻止为客户的网站提交重复的表单。
(PRG模式: http : //en.wikipedia.org/wiki/Post/Redirect/Get )
我最初尝试使用PRG模式。
在这种情况下,我认为我需要跨多个Web服务器处理会话(或spring flashmap)。
我的一位同事提出了这种方法。
另一位同事提出了这种方法。
我认为方法2,3不是一个好的选择。
但我不知道这些方法的具体缺点或安全风险 。
我试图谷歌,但我没有找到答案。
先感谢您。
我想更新优缺点。
session
, database
或其他东西。 session
,并且有多个服务器,则必须执行某些操作以使会话可在多个服务器上使用。 方法1是一个非常简单的方法,可以解决一些重复的帖子问题。 它无法应对服务器延迟,这是重复提交的原因。
方法2只不过是错误的。 如果限制浏览器标准功能(如刷新),用户将会感到不安。 也就是说,如果你甚至能够通过技术上跨浏览器这样做。 您需要考虑F5,Ctrl + F5,⌘+ F5等各种刷新图标。
我必须承认,我并不完全理解方法3的意图,但是,将用户反弹到空白页面感觉有点不对劲。
另一种标准方法是使用带表单帖子的nounce。 这也可以帮助您避免称为跨站点请求伪造的安全风险。 这很简单。
如果你得到另一个非现有nonce的请求,那么你知道它是一个重复的帖子或一些更邪恶的CSRF攻击。
您可以找到一些支持库来为您执行此操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.