了解 CSRF
CSRF(Cross-site request forgery)跨站请求伪造,是指攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。
攻击流程如下:
- 受害者登录 http://a.com ,并保留了登录凭证(Cookie)
- 攻击者引诱受害者访问了 http://b.com
- http://b.com 发送了一个请求: http://a.com/act=xx 。浏览器会默认携带 http://a.com 的Cookie。
- http://a.com 接收到请求后,对请求进行验证,并确认是受害者的凭证,误以为是受害者自己发送的请求。
- http://a.com 以受害者的名义执行了act=xx。
- 攻击完成,攻击者在受害者不知情的情况下冒充受害者,让 http://a.com 执行了自己定义的操作。
一个真实的案例:用户 David 在自己邮箱内点击了黑客恶意伪装的链接。黑客在点击的链接里冒充用户(cookie)向 Gmail 服务器发送邮件自动转发请求,导致 David 的邮件都被自动转发到了黑客的邮箱,从而被黑客利用盗取了用户数据。
CSRF 常见的攻击方式与防护策略
几种常见的攻击方式
- 自动发起 GET 请求的 CS