AntiForgery.GetTokens:什么是oldCookieToken参数的目的是什么?(A

2019-09-01 01:20发布

我们写在Objective-C,使职位,以我们的ASP.NET MVC的服务器应用的iOS移动应用程序。 在iPhone上,所述HTTP栈(和饼干等)看起来与野生共享。 这让我们对XSRF攻击开放,所以如果我错了,我们需要保护的职位有防伪标记,并保护我们的控制器方法ValidateAntiForgeryTokenAttribute

我会说,我不正确地理解由该防伪标记生成和验证......特别是,在这种情况下使用的术语“随机数”是有些神秘的机构资格这个问题。

因为我们没有提供HTML到客户端,我们无法使用标准@Html.AntiForgeryToken()所以我们反而要使用AntiForgery.GetTokens收购,而令牌分配给我们的客户。 这有一个神秘的第一个参数: oldCookieToken 。 此刻,我只是将它设置为null ,一切似乎很好地工作。 因此,谁能告诉我...什么用提供旧令牌到令牌生成算法的? 如果只有一个令牌发放给我们的iOS应用和多个职位重复使用,这是怎么回事是有问题的?

Answer 1:

AntiForgery.GetTokens将尝试重用为了进行验证的旧Cookie令牌。 所以,如果你已经有一个确认标记要重复使用,它会尝试使用它,而不是产生一个新的。 如果旧的令牌是无效的,它会产生一个新的,用它来代替。

所以通过nulloldCookieToken是有效的。 它简单地告诉GetTokens总是产生一个新的cookie标记。



文章来源: AntiForgery.GetTokens: what is the purpose of the oldCookieToken parameter?