2011-05-23 58 views
0

如何防止在MVC 2.0如何防止在ASP.NET中使用隨機數主要MVC 2.0

我要尋找一個低級別implementaion解決方案使用隨機數主要重放攻擊或多次回傳重放攻擊或多次回傳這個。它不一定是完整的,但是在動作過濾器中使用Nonce鍵用於此目的的任何示例都會受到歡迎。

這個想法是停止多個表單提交用戶通過多個按鈕按下或輸入按鍵命中。我已經有一個JavaScript解決方案,但我現在正在尋找一個通用的服務器端選項。

我的問題是基於這裏提供的解決方案:What methods are available to stop multiple postbacks of a form in ASP.NET MVC?

回答

0

你可以存儲一個唯一的密鑰(GUID也許)存儲在用戶的會話,並刷新每家每戶網頁加載時間。

guid應該包含在每個表單中(也許是一個隱藏的表單域),並且每次都要進行比較。

如果用戶打開了多個窗口,這樣做有缺點。


一種可能實現(但是它意味着AntiCSRF - 但可能會造成有用)是HtmlHelper.AntiForgeryToken MethodValidateAntiForgeryTokenAttribute

+0

感謝您的建議,但我正在尋找解決方案的執行代碼的描述提到的帖子,而不是實際的邏輯。 – Max 2011-05-23 16:10:12

+0

不用擔心@Sammy K,哎呦,我沒有先看鏈接。看起來我的回答幾乎相同 - 我沒有意識到它叫做nounce keys。您可能希望查看「Anti Cross Site Request Forgery」,這是一種安全機制,但它可能會阻止雙表單提交的副作用。我相信MVC3中內置了一些AntiCSRF技術http://msdn.microsoft.com/en-us/library/dd470175.aspx – 2011-05-24 08:06:57