什么是 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. 服务器端验证请求浏览器的 heferer 参数 (该参数表示的是从哪个网页发出的请求)
2. 增加随机 token 验证
来源: http://www.bubuko.com/infodetail-3360316.html