我读到,GET 请求不需要 CSRF,因为它们被认为是安全的。
但是我能想到的一种情况是这样的攻击:
<img src="https://otherdomain.com/logout" />
如果没有 CSRF,这会很糟糕。当然,可以要求注销路由来要求发布,但我经常看到它作为一个简单的 href 实现。
此外,为什么 GET 是安全的?他们仍然在响应中泄露数据......
这是一种只写攻击。来自 CSRF 上的 OWASP 页面:
CSRF 攻击的目标是导致服务器状态更改的功能,例如更改受害者的电子邮件地址或密码,或者购买某些东西。 强迫受害者检索数据对攻击者没有好处,因为攻击者没有收到响应,受害者却收到了。因此,CSRF 攻击针对的是状态更改请求。
只要 GET 请求不改变状态,它们对黑客来说就没有任何价值。
我认为您提供的注销示例可能会给用户带来不便,但对黑客没有实际危害,也没有实际好处。