CSRF(Cross-site request forgery)跨站请求伪造
提要
:CSRF(Cross-site request forgery)跨站请求伪造属于客户端攻击,一句话可以总结为:
攻击者盗用了用户的身份信息,以用户的名义发送恶意请求,对服务器来说这个请求是用户发起的,但却完成了攻击者所期望的一个操作。
原理讲解:
第一步
:用户通过浏览器登陆访问目标网站A,网站A会返回给浏览器用户的认证信息(cookie或sessionid),此时对于网站A,用户的请求都是合法的
第二步
:在网站A不退出,浏览器不关闭的情况下(目的是保证认证信息不失效),用户点击了黑客构造的恶意链接(恶意链接的内容是去访问网站A,对网站A产生影响)
第三步
:网站A响应执行黑客构造的恶意链接,攻击发生(因为此时恶意链接带了用户的认证信息,所以网站A认为恶意链接是合法的)
利用条件:
1,已登陆系统,用户访问URL,已存在的网站中允许用户跳转(认证信息不失效)
2,欺骗用户访问URL
漏洞危害
:
修改用户信息:用户头像,发货地址,添加账号,删除账号等
CSRF防护手段
:
1,设置随机Token进行验证
2,验证HTTP请求的Referer字段
3,设置验证码
4,限制请求方法最好为POST请求
5,当用户发送重要的请求需要输入登陆原始密码
CSRF通过和XSS漏洞一起结合使用,XSS可以进行cookie窃取和session劫持,从而为CSRF获取到认证信息。