gpt4 book ai didi

c# - AntiForgeryToken 在幕后是如何工作的?

转载 作者:行者123 更新时间:2023-11-30 16:58:53 29 4
gpt4 key购买 nike

我知道 CSRF 的基础知识和 AntiForgeryToken .

我也知道有很多类似的questions周围但似乎没有描述实现细节,这是我感兴趣的部分。

每次调用 Html.AntiForgeryToken() 时,它都会生成一个新的随机 token :

  1. 我可以同时拥有多个事件 token 吗? (我假设这里是肯定的)
  2. 我能否以其他形式使用这些 token 中的任何一个? (我假设这里是肯定的)
  3. 我可以多次使用同一个 token 吗?
  4. token 每次都是随机的是否有安全原因?整个 session 不能使用相同的 token 吗?

token 存储在cookie中

  1. 当我的页面中有多个表单和标记时,这是否意味着我有多个 cookie 或只有 1 个包含所有事件标记的 cookie?

还有...

  1. token 是如何生成的,是否可以手动验证。

最佳答案

1.Can I have multiple active tokens at the same time? (I assume it's yes here)

-> 是的。

2.Can I use any of those tokens in another form? (I assume it's yes here)

-> 是的。

3.Can I use the same token more than once?

-> 简短的回答是可以。长答案:这取决于多种因素,如果出现以下情况,您将不得不重新生成 token ,

Your cookie expires
Your user identity has changed.
Your additional data provider has decided that your token is no
longer valid.

4.Is there a security reason why the token is random every time? Couldn't it be the same token for the whole session?

-> 您不希望任何人能够预测您的 token 。请记住,cookie token 没有内置的自动过期功能。

1.When I have multiple forms and tokens in my page, does it mean I have multiple cookies or only 1 cookie containing all the activetokens?

-> 在任何给定的时间点,只有一个 cookie 会在一个 session 中处于事件状态,该 cookie 具有 SecurityToken 属性。页面上的每个有效 防伪 token 都将具有相同的 SecurityToken(否则将无法通过验证)。

1.How is the token generated and is it possible to validate it manually.

我建议阅读帖子 explaining the internals herecode here

我实际上在想,为什么您需要跨表单使用相同的防伪标记。如果您分享您的场景,这可能会有所帮助。

关于c# - AntiForgeryToken 在幕后是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24560737/

29 4 0
文章推荐: c - 如何使用 libvlc 检索编解码器信息?
文章推荐: javascript - 如何在使用 AngularJS 提交