这里写目录标题
CSRF(跨域请求伪造)
恶意网站以正常用户为媒介,通过模拟正常用户的操作,攻击其登录过的网站。
原理:
1. 正常用户登录后,获得正常站点的令牌,以cookie的形式保存。
2. 用户访问恶意站点,恶意站点通过某种形式去请求了正常网站,然后将用户的令牌传递到正常网站,完成攻击。
防御
cookie的sameSite
现在很多浏览器都支持禁止跨域携带cookie。需要设置cookie的sameSite为:
- Strict:严格,所有跨站请求都不附带cookie,有时会导致用户体验不好
- Lax:宽松,所有跨站的超链接、GET请求的表单、预加载连接时会发送cookie,其他情况不发送
- None:无限制
这种方法非常简单,极其有效,但前提条件是:用户不能使用太旧的浏览器。
验证referer和Origin
页面中的二次请求都会附带referer或Origin请求头,向服务器表示该请求来自于哪个源或页面,服务器可以通过这个头进行验证。
但某些浏览器的referer是可以被用户禁止的,尽管这种情况极少
二次验证
当做出敏感操作时,进行二次验证
使用非cookie令牌
这种做法