CSRF跨站请求伪造

有CSRF的地方可能会有XSS漏洞

XSS和CSRF的区别

①  XSS再不建立连接的情况下可以执行漏洞代码

     CSRF必须要在登录状态下建立链接才能执行漏洞代码

②   XSS主要指向客户端,而CSRF针对服务端。

③  XSS是利用合法用户获取其信息,而CSRF是伪造成合法用户发起请求。

④ CSRF相当于是XSS的基础版,CSRF能做到的XSS都可以做到。

⑤  XSS:跨站脚本攻击、诱骗用户点击恶意链接盗取用户cookie进行攻击、不需要用户进行登录、xss除了利用cookie还可以篡改网页等

   CSRF:跨站请求伪造、无需获取用户的cookie而是直接冒充用户、需要用户登录后进行操作

3、CSRF如何防御

方法一、Token 验证:(用的最多)

(1)服务器发送给客户端一个token;

(2)客户端提交的表单中带着这个token。

(3)如果这个 token 不合法,那么服务器拒绝这个请求。

方法二:隐藏令牌:

把 token 隐藏在 http 的 head头中。

方法二和方法一有点像,本质上没有太大区别,只是使用方式上有区别。

方法三、Referer 验证:

Referer 指的是页面请求来源。意思是,只接受本站的请求,服务器才做响应;如果不是,就拦截。

原理

原理图

从上图可以看出,要完成一次CSRF攻击,受害者必须满足两个必要的条件:

(1)登录受信任网站A,并在本地生成Cookie。(如果用户没有登录网站A,那么网站B在诱导的时候,请求网站A的api接口时,会提示你登录)

(2)在不登出A的情况下,访问危险网站B(其实是利用了网站A的漏洞)。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。