CSRF
01 CSRF介绍
定义
CSRF(跨站请求伪造)使已经登陆浏览器的用户执行非本意的操作,如诱使受害者点击发送请求的链接,由于浏览器通常会保存用户的信息,请求就会在用户未知的情况下被执行-
实际场景
例如在转账的场景中:
正常链接:www.cheek.com/pay.php?target=xx&money=100
用户正常转账操作需要目标与金额两个参数,攻击者可以根据这两个参数伪造链接诱使点击
恶意链接:www.cheek.com/pay.php?target=hacker&money=100000
用户就将在不知情的情况下将钱转给攻击者
-
必要条件
- 用户已经登陆了系统,并且浏览器自动记录了用户的凭证
- 用户点击了伪造的URL
02 CSRF的攻防
- 攻击方式
- 攻击者往往通过社会工程学的方法发送恶意链接诱使受害者点击,或者将链接伪装成诱惑性的标题
- 将链接放在a标签中,诱使用户点击跳转
- 将链接放在img标签中,加载图片时就完成了请求
- 与XSS结合进行攻击
- 防御方式
- 无效的防御
- 秘密cookie
- 仅接受POST请求
- 多步交易
- URL重写
- HTTPS
- 有效的防御
- 验证Referer字段
- 添加token
- 敏感操作二次验证
- 用户提高安全意识
- 无效的防御