如何使用MVC 2.0中的Nonce Key防止重放攻击或多次回发
我正在为此寻找一个低级别的实施解决方案。它不一定是完整的,但欢迎在动作过滤器中使用Nonce键的任何示例。
这个想法是通过多个按钮按下或输入按键命中来停止用户提交多个表单。我已经有了一个JavaScript解决方案,但我现在正在寻找一个通用的服务器端选项。
我的问题基于此处提供的解决方案:What methods are available to stop multiple postbacks of a form in ASP.NET MVC?
答案 0 :(得分:0)
您可以存储存储在用户会话中的唯一密钥(可能是Guid),并在每次加载每个页面时刷新。
guid应该包含在每种形式(可能是隐藏的表格字段)中,并且每次都要进行比较。
如果用户打开了多个窗口,这确实有缺点。
可能的实现(但是它适用于AntiCSRF - 但可能有用)可以是HtmlHelper.AntiForgeryToken Method和ValidateAntiForgeryTokenAttribute