我们正在使用 Objective-C 编写一个 iOS 移动应用程序,用于向我们的 ASP.NET MVC 服务器应用程序发送帖子。在 iPhone 上,HTTP 堆栈(和 cookie 等)似乎与 Safari 共享。这使我们容易受到 XSRF 攻击,因此除非我弄错了,否则我们需要使用防伪令牌来保护 POST,并使用以下方法来保护我们的控制器方法:ValidateAntiForgeryTokenAttribute
.
我将通过说我没有正确理解防伪令牌生成和验证的机制来限定这个问题......特别是,在这种情况下使用的术语“随机数”有点神秘。
因为我们不向客户端提供 HTML,所以我们无法使用标准@Html.AntiForgeryToken()
,所以我们必须使用AntiForgery.GetTokens http://msdn.microsoft.com/query/dev11.query?appId=Dev11IDEF1&l=EN-US&k=k%28System.Web.Helpers.AntiForgery.GetTokens%29;k%28TargetFrameworkMoniker-.NETFramework获取代币并将其分发给我们的客户。这有一个神秘的第一个参数:oldCookieToken
。目前,我只是将其设置为null
一切似乎都运行良好。那么谁能告诉我...向令牌生成算法提供旧令牌有什么用?如果只向我们的 iOS 应用程序颁发一个令牌并重复用于多个帖子,这会出现问题吗?
AntiForgery.GetTokens
将尝试重用旧的 cookie 令牌进行验证。因此,如果您已经拥有想要重复使用的验证令牌,它将尝试使用它而不是生成新的验证令牌。如果旧的令牌无效,它将生成一个新的令牌并使用它。
就这么过去了null
to oldCookieToken
已验证。它只是告诉GetTokens
始终生成新的 cookie 令牌。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)