gpt4 book ai didi

c# - AntiForgery.GetTokens : what is the purpose of the oldCookieToken parameter?

转载 作者:IT王子 更新时间:2023-10-29 04:49:23 27 4
gpt4 key购买 nike

我们正在使用 objective-c 编写一个 iOS 移动应用程序,用于向我们的 ASP.NET MVC 服务器应用程序发布帖子。在 iPhone 上,HTTP 堆栈(和 cookie 等)似乎与 Safari 共享。这使我们容易受到 XSRF 攻击,因此除非我弄错了,否则我们需要使用防伪 token 保护 POST 并使用 ValidateAntiForgeryTokenAttribute 保护我们的 Controller 方法。

我会通过说我没有正确理解生成和验证防伪 token 的机制来限定这个问题......特别是,在这种情况下使用的术语“nonce”有点神秘。

因为我们不向客户端提供 HTML,所以我们不能使用标准的 @Html.AntiForgeryToken(),因此我们必须使用 AntiForgery.GetTokens获取代币并将其分发给我们的客户。这有一个神秘的第一个参数:oldCookieToken。目前,我只是将它设置为 null,一切似乎都正常。那么谁能告诉我...将旧 token 提供给 token 生成算法有什么用?如果只向我们的 iOS 应用程序颁发一个 token 并重复用于多个帖子,这会不会有问题?

最佳答案

AntiForgery.GetTokens 将尝试重新使用旧的 cookie token 进行验证。因此,如果您已经有一个要重复使用的验证 token ,它将尝试使用它而不是生成一个新的。如果旧 token 无效,它将生成一个新 token 并使用它代替。

因此将 null 传递给 oldCookieToken 是有效的。它只是告诉 GetTokens 始终生成一个新的 cookie token 。

关于c# - AntiForgery.GetTokens : what is the purpose of the oldCookieToken parameter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16192019/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com