javascript - CSRF - 双重提交 Cookie
问题描述
我正在学习 CSRF 解决方案,并开始阅读“双重提交”:
该站点应生成一个(加密强度较高的)伪随机值,并将其设置为用户机器上的 cookie,与会话标识符分开。然后,该站点要求每个事务请求都包含此伪随机值作为隐藏表单值(或其他请求参数/标头)
好吧,假设这里的 cookie 没有被定义为“同站点”,那么请求参数中发送的令牌值是攻击者实现 CSRF 唯一需要的东西,我认为他可以获得这个令牌:客户端正常访问网站时token被写成表单,那么攻击者可以做的是:在自己的页面上写一些js,然后获取目标网站想要的页面,这显然是要运行的在受害者的浏览器上,浏览器接收 html 内容,例如文本、按钮,尤其是表单(其中包含 CSRF 令牌),然后它使用某种过滤或其他方式从表单中获取令牌,并将此令牌放在下一个请求(另一个 fetch 函数来进行一些状态更改)以执行攻击者想要执行的任何操作。
你觉得我的意见怎么样?
在此先感谢艾哈迈德。
解决方案
推荐阅读
- android - 如何让我的安卓设备被MacOS识别?
- reactjs - 通过 Context API 在子组件(用作道具)中设置父组件的状态 - 不会触发 componentDidUpdate
- vue.js - 如何在“v-for”列表中设置项目的类名
- if-statement - 如何使用 lua 检查 Roblox 中是否存在对象?
- vue.js - 在 vue.js 中提供给 v-for 用于迭代的未闭合标签是否有效?
- java - Java在PC上运行ServerSocket
- python - Django:在验证之前处理表单字段
- python - 我遇到了关于 AttributeError 的问题
- python - Boto3 获取 Elasticache ARN
- c# - 如何在 ComboBox 中仅在表示行中设置粗体,而不是在整个下拉列表(WPF)中?