csrf token 生成与验证是如何做的呢?

发布于 2022-09-12 01:48:34 字数 297 浏览 16 评论 0

1.服务器会在cookie中保存一个csrf_token_key, 用作钥匙。
2.服务器会在页面生成时,获取csrf_token_key这个钥匙, 生成一个随机的csrf_token令牌,当表单提交时,获取到csrf_token 通过 csrf_token_key解密比较是否一致。

1.csrf_token要随机,而且是要用csrf_token_key来完成这个随机,并保证可以验证和比较
2.为什么csrf_token要随机呢?因为服务器并没有验证这个csrf_token的重复和时效,这是我不太理解的地方,但大多数的网站都是这样做的,很疑惑。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

谜兔 2022-09-19 01:48:34
  1. CSRF=攻击者构建一个请求,引诱有某网站权限的人发出,达成目的
  2. 所以,要防止 CSRF,只要让用户身份验证在这种情况下失效即可
  3. 所以,只要满足这些条件就可以

    1. 服务器端会校验 csrf token
    2. csrf token 不能被轻易破解
    3. 二选一:

      1. csrf token 以某种 无法构建 的方式发送给服务器
      2. 攻击者难以取得 csrf token

回到题目,我觉得你描述的做法是加大攻击者取得和重复利用 csrf token 的难度,并非一定要这么做。

神经大条 2022-09-19 01:48:34

参考如下文章
前端安全系列(二):如何防止CSRF攻击? - 美团技术团队
可以直接看第3部分:「服务器验证Token是否正确」

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文