攻击原理
- 用户登录A网站
- A网站确认身份后 发送登录态 例如Cookies
- B网站页面向A网站发起请求(带A网站身份)
攻击危害
- 利用用户登录态 => 盗取用户资金(转账、消费)
- 用户不知情 => 冒充用户发帖
- 完成业务请求 => 损坏网站声誉
防御
same-site(Strict、Lax、None) 限制发送第三方 Cookies
验证码
验证referer
token
Cookies 和CSRF关系
- CSRF利用了用户的Cookies
- 攻击站点无法读写Cookies
疑问
-
Q: Cookies存在同源策略,不同的域名无法访问 例如,有A,C两个网站,C网站为恶意网站,C网站是如何获得A网站的Cookie然后向A网站服务器发送请求的?
A: script、image、iframe的src都不受同源策略的影响 浏览器会依据加载的域名附带上对应域名Cookies。
就是如果用户在a网站登录且生成了授权的Cookies,然后访问b网站,b站故意构造请求a站的请求,如删除操作之类的,用script,img或者iframe之类的加载a站着个地址,浏览器会附带上a站此登录用户的授权cookie信息,这样就构成crsf,会删除掉当前用户的数据。