CSRF通常从第三⽅⽹站发起,被攻击的⽹站⽆法防⽌攻击发⽣,只能通过增强⾃⼰⽹站针对CSRF的防护能⼒来提升安全性。
CSRF的两个特点:
针对这两点,我们可以专⻔制定防护策略,如下:
因此我们可以针对性得进⾏预防
既然CSRF⼤多来⾃第三⽅⽹站,那么我们就直接禁⽌外域(或者不受信任的域名)对我们发起请求:
CSRF的另⼀个特征是,攻击者⽆法直接窃取到⽤户的信息(Cookie,Header,⽹站内容等),仅仅是冒⽤Cookie中的信息。
⽽CSRF攻击之所以能够成功,是因为服务器误把攻击者发送的请求当成了⽤户⾃⼰的请求。那么我们可以要求所有的 ⽤户请求都携带⼀个CSRF攻击者⽆法获取到的Token。服务器通过校验请求是否携带正确的Token,来把正常的请求 和攻击的请求区分开,也可以防范CSRF的攻击:
CSRF Token的防护策略分为三个步骤:
在会话中存储CSRF Token⽐较繁琐,⽽且不能在通⽤的拦截上统⼀处理所有的接⼝
那么另⼀种防御措施是使⽤双重提交Cookie。利⽤CSRF攻击不能获取到⽤户Cookie的特点,我们可以要求Ajax和表单请求携带⼀个Cookie中的值
双重Cookie采⽤以下流程:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。