简介
CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,是一种对网站的恶意攻击。
尽管听起来像跨站脚本(XSS),但它与 XSS 非常不同。
XSS 利用的是站点内的信任用户,而 CSRF 则通过伪装成(假冒)站点内的信用用户,执行该用户不知情的操作。
与 XSS 攻击相比,CSRF 攻击往往不太流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比 XSS 更具危险性。
CSRF 攻击是在受害者毫不知情的情况下,以受害者名义伪造请求发送给受攻击站点,从而在受害者并未授权的情况下执行受害者权限下的各种操作。
CSRF 攻击的原理
CSRF 攻击的条件
- 正常网站 A,存在 CSRF 漏洞;恶意网站 B,含有攻击性代码,用来对网站 A 进行攻击。
- 正常网站 A,有两个用户:user01(受害者)和 user02(攻击者)。
- user02(攻击者)清楚地了解网站 A,并创建了具有攻击性的网站 B。
- user01(受害者)登录了网站 A 后,在自身的 session 未失效的情况下,访问了恶意网站 B。
CSRF 攻击的过程
- 用户 user01 通过浏览器访问正常网站 A,输入用户名和密码请求登录验证。
- 登录验证通过后,网站 A 保存 user01 的 session,并将对应的 cookie 返回给 user01 的浏览器。这样, user01 就可以在网站 A 执行自身权限下的各种请求(操作),比如取款、发表文章、发表评论等。
- 假如, user01 还未退出网站 A,在同一浏览器中,访问了恶意网站 B。
- 网站 B 是 user02 创建的,user02 清楚地知道网站 A 的工作模式。网站 B 通过攻击性代码访问网站 A(携带的是 user01 的 cookie),执行某些并非 user01 授意的操作。
- 网站 A 却并不知道这个恶意请求是从网站 B 发出的,因此,就会根据 user01 在网站 A 中具备的相关权限,执行权限下的各种操作。这样,就在 user01 不知情的情况下,user02 假冒 user01,执行了具备 user01 用户身份的操作。

最低0.47元/天 解锁文章
3114





