这个页面描述了一个用例来解释 CSRF 攻击(16.1):
https://docs.spring.io/spring-security/site/docs/current/reference/html/csrf.html
但是如果用户确实已经登录了银行的网站,那么恶意网站不可能通过GET请求获取新的CSRF令牌,并且在完全不需要用户的情况下制作POST请求。答案必须是否定的,否则CSRF令牌就没有用处,但我不明白为什么?https://docs.spring.io/spring-security/site/docs/current/reference/html/csrf.html
但是如果用户确实已经登录了银行的网站,那么恶意网站不可能通过GET请求获取新的CSRF令牌,并且在完全不需要用户的情况下制作POST请求。答案必须是否定的,否则CSRF令牌就没有用处,但我不明白为什么?evil.com
的页面无法读取它所发送请求的响应。浏览器会阻止大多数直接发送请求的方式(SOP),但有许多解决方法。例如,evil.com
可以通过嵌入 <img>
、<script>
、<css>
并设置 src="http://example.com/path"
(或 <a href="http://example.com/path">
)来发送 GET 请求;也可以通过提交表单来发送 POST 请求。由于 evil.com
无法读取任何响应,因此它无法读取 CSRF 令牌。