csrf token 生成与验证是如何做的呢?
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
所以,只要满足这些条件就可以
二选一:
回到题目,我觉得你描述的做法是加大攻击者取得和重复利用 csrf token 的难度,并非一定要这么做。
参考如下文章
前端安全系列(二):如何防止CSRF攻击? - 美团技术团队
可以直接看第3部分:「服务器验证Token是否正确」