杆子通到底"/>
CSRF问题一杆子通到底
关于CSRF跨站点请求伪造(cross-site-request-forgery)
如下图:
过程:
1. 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;
2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
3. 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;
4. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;
5. 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。
问题:
大家众所周知cookie是不能跨域访问的(对session和cookie不了解的可以自行百度),那为什么还会存在csrf?
答:
浏览器会依据加载的域名附带上对应域名cookie。
就是如果用户在a网站登录且生成了授权的cookies,然后访问b网站,b站故意构造请求a站的请求,如删除操作之类的,用script,img或者iframe之类的加载a站着个地址,浏览器会附带上a站此登录用户的授权cookie信息,这样就构成crsf,会删除掉当前用户的数据。
注释:script、image、iframe的src都不受同源策略的影响。所以我们可以借助这一特点,实现跨域
更多推荐
CSRF问题一杆子通到底
发布评论