![](/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.