如何使用令牌防止跨站请求伪造(CSRF)攻击?
我已经阅读了关于CSRF和如何使用不可预测的同步令牌模式来防止它的内容。但我并没有完全理解它的工作原理。
让我们以这个场景为例:
一个用户已经登录到一个网站,使用以下表单:
服务器还将令牌存储在会话中。当请求被发送时,它会将表单数据中的令牌与会话中的令牌进行比较。
但是,当黑客可以编写JavaScript代码来进行以下操作时,这样做如何防止CSRF呢?
- 发送一个GET请求到该网站
- 接收包含请求表单的HTML文本
- 在HTML文本中搜索CSRF令牌
- 使用该令牌进行恶意请求
我是否遗漏了什么?