首页 > 网络安全 > 安全教程

Web安全教程之CSRF(跨站点请求伪造)

admin 安全教程 2022-02-17 08:02:47 Web安全   CSRF   跨站点请求伪造"

前言

我们在前端面试过程中遇到的另一个最多的问题就是web安全了,这次我们来聊聊CSRF攻击。CSRF是一种常见的攻击,但是也是web安全中最容易被忽略的一种攻击方式。下面话不多说了,来一起看看详细的介绍吧。

什么是CSRF(跨站点请求伪造)

根据字面意思,大概能猜到,CSRF攻击就是攻击者伪造了用户的请求,在用户不知道的情况下,以用户的名义向服务器发送恶意请求。常见的场景是,用户首先登陆一个正常(下面称为被攻击网站)的网站,攻击者诱使用户在不关闭被攻击网站的同时打开攻击者的页面,这时攻击者就可以以用户的名义给被攻击网站发送恶意请求了。可以看出CSRF是有条件的,首先用户要登陆被攻击网站,并生成Cookie,然后在不登出被攻击网站的同时,访问攻击网站。这两个条件缺一不可。

CSRF进阶

浏览器Cookie策略

CSRF之所以能成功,主要还是因为用户的浏览器成功发送了Cookie的缘故。浏览器所持有的Cookie分为两种:一种是“Session Cookie”,又叫“临时Cookie”;另一种是“Third-party Cookie”,也称为“本地Cookie”。
 

Third-party Cookie,服务器在Set-Cookie时指定了Expire时间,只有到了Expire时间后Cookie才会失效,而Session Cookie则没有指定Expire时间,浏览器关闭后就失效了。如果浏览器从一个域的页面中,要加载另一个域的资源,由于安全原因,某些浏览器会阻止Third-party Cookie的发送。由于新打开的页面和原来的页面在同一个浏览器进程中,所以Session Cookie将会被发送。

IE浏览器处于安全考虑是禁止浏览器在