CSRF-跨站请求伪造
一、概述
1.概述
CSRF(Cross-Site Request Forgery),指攻击者诱使用户执行他们不打算执行的操作。
攻击者利用服务器对用户的信任,欺骗受害者向服务器发起受害者不知情的恶意请求。一般场景中,攻击者会伪造一个恶意链接诱使用户点击。
2.CSRF与XSS的区别
xss是利用用户对服务器端的信任,通常是利用网页开发留下的漏洞。
CSRF则是利用服务器对用户的信任,利用用户的身份向服务器发送恶意请求
二、CSRF攻击过程
①用户向A发送正常的登录请求
②服务器生成cookie并返回
③此时用户在退出A之前又访问了攻击者创建的网站B
④B构造访问ServerA的恶意请求
⑤就这样在用户不知情的情况下,攻击者使用用户的cookie信息向A发送了恶意请求
三、CSRF利用
token绕过
token参数置空
使用其他用户的token
四、CSRF防御
1.验证 Referer字段,拒绝来自非本站的请求
2.在请求地址中添加token验证
3.避免在URL中明文显示特定操作内容
4.不在客户端保存敏感信息
5.敏感信息修改时,需要对身份二次认证
6.禁止跨域访问
7.在响应中设置CSP(Content-Security-Policy)内容安全策略