什么是CSRF攻击,如何避免
CSRF,跨站请求伪造,是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。
- Tom 登陆银行,没有退出,浏览器包含了Tom在银行的身份认证信息。
- 黑客Jerry将伪造的转账请求,包含在在帖子
- Tom在银行网站保持登陆的情况下,浏览帖子
- 将伪造的转账请求连同身份认证信息,发送到银行网站
- 银行网站看到身份认证信息,以为就是Tom的合法操作,最后造成Tom资金损失。
- 怎么解决CSRF攻击呢?
同源检测Samesite Cookie
检查Referer字段。添加校验token。
需要输入验证码
samesite防御CSRF的原理
SameSite有三个属性Lax, Strict, None
- Lax:b站上通过超链接访问a站,会携带a站cookie。b站通过img标签等跨越请求a站时,不会携带cookie,设置的cookie也不会起作用
- Strict:b站上通过超链接访问a站,不会携带a站cookie。b站通过img标签等跨域请求a站时,不会携带cookie,设置的cookie也不会起作用
- None:b站上通过超链接访问a站,会携带a站cookie。b站通过img标签等跨域请求a站时,会携带cookie,设置的cookie起作用
CSRF分类与防护
1. GET类型的CSRF
在受害者访问含有恶意链接的img等相关恶意链接时,浏览器自动跳转发出http请求。
2. POST类型的CSRF
使用一个自动提交的表单
访问恶意网站时,表单会自动提交相当于模拟用户完成了一次POST操作。
防御手段
- 将Cookie设置为HttpOnly
- 使用JWT token进行会话
- 通过Refer识别,判断是否是本网站域名。
- 二次验证,验证码或输入密码
426

被折叠的 条评论
为什么被折叠?



