【网络安全】What is CSRF ?

参阅OWASP和Wikipedia等学习后总结如下:

一、综述

全称:Cross-site request forgery可叫做跨站请求伪造、跨站请求欺骗;

CSRF 是一种迫使终端用户在已经验证的web应用中执行一些不情愿的动作actions。由于攻击者无法得到response进而构造出虚假request,CSRF攻击是针对状态改变请求,而不是数据窃取。 

攻击者可以借助社会工程的帮助(email、WeChat……)使得用户执行攻击者想要该用户 执行的动作。

当被攻击者是一个normal user 那么攻击者就可以迫使用户的请求更改为转账、发邮件等。当被攻击者是一个administrator,那么这个攻击将可能影响整个web应用。

二、详细叙述

CSRF是“欺骗”用户提交恶意请求的攻击,这种攻击方式使用用户的正牌身份特权执行攻击者想要执行的动作。由于http的无状态性,web site 是根据cookies进行身份验证,CSRF利用了这种特性使用真实的身份进行操作,web site无法区分是伪造请求还是合法请求,从而实现攻击。

攻击的目的是使得server状态发生变化,变化的结果一般是对攻击者有利的。

三、CSRF攻击原理

简述:user访问attacker的虚假网站,attacker要求user向信任网站发起请求(转账)。


四、CSRF防御

1、检查referer字段

referer字段指明请求来源url是什么,但是并不是完全可以防止CSRF,attacker可以篡改referer字段。

2、加入校验token

在访问敏感数据的请求中,需要user提供不在cookies中的数据作为校验,这个数一般放在表单中并且是个伪乱数。attacker无法得知这个数,从而实现防御。

五、CSRF和XSS的关系

 CSRF 和 XSS 根本是两个不同维度上的分类。

实现 CSRF 的方法之一是XSS,即 XSRF。

1、XSS是html注入问题,CSRF是伪造身份问题

2、XSS是user登录A网站,在A网站上做一些操作的时候触发的。

      CSRF是user登录A网站,未注销又登录B网站时触发的。

3、XSS是attacker获取身份后,attacker做后续操作导致攻击。

     CSRF是attacker在user浏览B网时产生的,是user的browser主动发起的。

六、总结

CSRF是利用user发起请求的一种攻击方式,基于cookies机制实现的。

与XSS相似但是威胁系数比较高!




猜你喜欢

转载自blog.csdn.net/qq_34519492/article/details/80632209