什么是跨站请求伪造?(用户访问恶意网站)
1.用户在登录正常网站时,会获取到正常站点的令牌,以cookie形式保存
2.当用户访问恶意网站时,恶意网站通过某种形式去请求正常网站(请求伪造),由于用户已获取此站点的令牌,因此直接进入正常站点,模拟用户操作,进行攻击
防御:
1.设置cookie的samesite 在跨站请求时是否携带cookie
strict 严格 所有的跨站都不允许携带cookie 但有时可能会导致用户体验不好,比如从csdn跳到牛客让你重新登录
lax 宽松 超链接/get请求/预加载链接时会携带cookie 其他不携带
none 无限制
2.验证referer和origin
页面二次请求,会携带referer和origin请求头
3.验证码 网站进行一些增删改操作时进行验证 会把用户逼疯
4.随机表单数(ssr时)
- 服务器生成一个session
- 生成页面时,给表单带一个session过去
- 提交表单时
- 服务器先拿cookie进行对比,后台进行再对比session,然后销毁随机数
5.二次验证 当进行一些关键操作时 进行邮箱或者短信验证