0%

CSRF

CSRF, Cross-Site Request Forgerr, 跨站请求伪造.
一般我们认为:如果请求的发出不是用户的意愿, 那么这个请求就是伪造的.

1. 攻击原理

  1. 用户访问正常网站A, 并获得授权
  2. 用户未退出网站A, 并且访问了恶意网站B
  3. 浏览器自动触发恶意网站B中的恶意请求–跨站访问网站A
  4. 网站A收到请求, 认为用户以获得授权, 请求合法并执行.

2. 攻击类型

  • HTML CSRF
    使用HTML元素发起攻击.
    是最普遍的CSRF攻击方式.
  • JSON HiJacking
  • Flash CSRF

3. 危害

  • 篡改目标网站上的用户数据
  • 盗取用户隐私数据
  • 作为其他攻击向量的辅助攻击手法
  • 传播CSRF蠕虫

4. CSRF防御

  • 验证码
    会影响用户体验.
  • 验证请求头中的referer
    浏览器中有防止信息追踪策略, 请求不会带上referer, 导致误判.
  • token凭证
    token为服务器端提供的随机秘钥, 攻击者无法伪造.
    服务器先给浏览器提供token, 用户提交请求后, 验证token有效性, 在处理请求;若没有token或token不正确, 则判定为CSRF攻击, 拒绝请求.