CSRF 令牌超时
CSRF token timeout
此页面描述了一个用例来解释 CSRF 攻击 (16.1):
https://docs.spring.io/spring-security/site/docs/current/reference/html/csrf.html
但是如果用户确实登录了银行的网站,那么邪恶的网站是不是可以发出 GET 请求来获取新的 CSRF 令牌,并制作一个 POST 而不需要有用户吗?
答案必须是否定的,否则CSRF token就没有用了,但我不明白为什么?
答案是"no",原因是同源策略。
SOP 表示来自 evil.com
的页面无法 读取 对它可能发送给 example.com
的请求的任何响应。大多数直接发送请求的方式都会被浏览器拦截(SOP),但也有很多变通方法。例如,evil.com
可以发送
- 通过嵌入
<img>
、<script>
、<css>
并设置 src="http://example.com/path"
(或 <a href="http://example.com/path">
)来获取请求。
- POST 通过提交表单请求。
由于 evil.com
无法读取任何响应,因此无法读取 CSRF 令牌。
此页面描述了一个用例来解释 CSRF 攻击 (16.1):
https://docs.spring.io/spring-security/site/docs/current/reference/html/csrf.html
但是如果用户确实登录了银行的网站,那么邪恶的网站是不是可以发出 GET 请求来获取新的 CSRF 令牌,并制作一个 POST 而不需要有用户吗?
答案必须是否定的,否则CSRF token就没有用了,但我不明白为什么?
答案是"no",原因是同源策略。
SOP 表示来自 evil.com
的页面无法 读取 对它可能发送给 example.com
的请求的任何响应。大多数直接发送请求的方式都会被浏览器拦截(SOP),但也有很多变通方法。例如,evil.com
可以发送
- 通过嵌入
<img>
、<script>
、<css>
并设置src="http://example.com/path"
(或<a href="http://example.com/path">
)来获取请求。 - POST 通过提交表单请求。
由于 evil.com
无法读取任何响应,因此无法读取 CSRF 令牌。