什么是csrf(跨站请求伪造)
伪造请求的定义有很多种,我将不是用户本意发出的请求统称为伪造请求(在用户不知情的情况下执行某些操作)xss的通过用户对浏览器的信任造成的,csrf是通过服务器对浏览器的信任造成的
csrf的原理及过程:
假设有a用户和b网站c网站 c网站为恶意网站
a用户正常登录b网站,登录成功,b网站返回一个cookie给a用户
b用户访问c网站,c网站在a用户不知情的情况下要求a的浏览器访问b网站的特点功能,浏览器正常执行
b网站接到a浏览器的请求,正常执行a用户浏览器的请求
csrf形成的前提:
与攻击方处于同一浏览器,用户处于登录状态并且用户访问了攻击方的链接
csrf攻击过程:
当用户执行修改密码操作时候,向网页提交了一个正常的请求
根据这个请求配置一个方式配置一个专门的网页,当访问这个网页的时候,这个网页会发出一个iframe框架请求请求了修改密码请求,将密码修改为123,display是设置框架的隐藏
受害者访问过程:
我们更换用户登录
登录成功:访问网址
退出登录
密码已经被修改成123
csrf的防御:
1.服务器端验证请求浏览器的Referer参数(该参数表示的是从哪个网页发出的请求)
2.增加随机token 验证
3.Cookie中的http-only属性验证