前端安全CSRF篇

CSRF(跨站请求伪造)

简单场景

基本流程:假设A网站是合法的,B网站是恶意网站

小明是一个A网站的注册用户,一般登陆后,网站都会把用户凭证放在cookie中,在一定时期内小明再访问A网站就不需要重新登陆了。

假设在这个有效期内,小明访问了B网站的一个恶意链接(可以是点击也可是打开网页等),B网站精心设置了一系列操作,利用小明A网站的登陆信息访问了A网站的一系列接口。比如删除接口等等。

案例举到这里可以看出,要实现CSRF攻击主要满足:

1.A网站对应的接口要有漏洞

2.小明已经登陆了A网站,具有凭证

如何防御?

1.设置cookie的SameSite属性

由于CSRF相当于利用登陆用户的cookie(不能修改),而SameSite属性只有同一个网站才可以使用

缺点:这个属性目前兼容性比较差

2.服务端验证客户端请求中的refer字段

r缺点:refer可以比较容易的进行抓包修改

3.在网站前端(A网站)设置csrf_token

对应post请求可以再表单中添加隐藏的input标签,设置值为csrf_token

对于get请求可以设置在meta标签中等

然后每次刷新页面csrf_token需要改变,可以在cookie中也设置csrf_token,然后服务端判断两个cookie是否相等决定响应

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容