首页 > 解决方案 > CSRF - 双重提交 Cookie

问题描述

我正在学习 CSRF 解决方案,并开始阅读“双重提交”:

该站点应生成一个(加密强度较高的)伪随机值,并将其设置为用户机器上的 cookie,与会话标识符分开。然后,该站点要求每个事务请求都包含此伪随机值作为隐藏表单值(或其他请求参数/标头)

好吧,假设这里的 cookie 没有被定义为“同站点”,那么请求参数中发送的令牌值是攻击者实现 CSRF 唯一需要的东西,我认为他可以获得这个令牌:客户端正常访问网站时token被写成表单,那么攻击者可以做的是:在自己的页面上写一些js,然后获取目标网站想要的页面,这显然是要运行的在受害者的浏览器上,浏览器接收 html 内容,例如文本、按钮,尤其是表单(其中包含 CSRF 令牌),然后它使用某种过滤或其他方式从表单中获取令牌,并将此令牌放在下一个请求(另一个 fetch 函数来进行一些状态更改)以执行攻击者想要执行的任何操作。

你觉得我的意见怎么样?

在此先感谢艾哈迈德。

标签: javascriptcookiescsrf

解决方案


推荐阅读