为了账号安全,请及时绑定邮箱和手机立即绑定

浏览器中如何保存REST认证的Token, 防止CSRF攻击?

浏览器中如何保存REST认证的Token, 防止CSRF攻击?

慕桂英3389331 2019-04-07 11:19:11
在浏览器中需要使用Ajax访问RESTAPI,Token保存在cookie或localstorage中是否可行,会不会被窃取或者CSRF攻击?如果使用JS读取来添加到请求中,那么当第一次访问时,如何带上Token?(根据有无Token判断用户身份来渲染首页).刚刚接触前端没多久,Web安全方面不是很懂,请知道的朋友帮忙解答一下,谢谢.
查看完整描述

2 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

CSRF的是利用了浏览器给域下的请求自动带上保存的cookie,因此服务器端单纯用cookie判断的话确实会有问题。
常见解决的方案:
1.把token放在cookie/ls里,用js读取cookie中的token,放到ajax请求的参数中。服务器端用参数而非cookie读token。
2.遵照HTTP规范,更新资源用POST,这样不能完全防范,但能提升CSRF攻击的成本,常见的img标签攻击会失效
3.服务器端对请求的refer做判断,过滤跨域的敏感请求
建议以上几点都采用,能把CSRF攻击的门槛提高到相对比较安全的级别
                            
查看完整回答
反对 回复 2019-04-07
  • 2 回答
  • 0 关注
  • 521 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信