比如用户登录了某银行网站(假设为
http://www.examplebank.com/,并且转账地址为
http://www.examplebank.com/withdraw?amount=1000&transferTo=PayeeName),登录后 cookie 里会包含登录用户的 sessionid,攻击者可以在另一个网站上放置如下代码
文章插图
CSRF 攻击的根本原因在于对于同样域名的每个请求来说,它的 cookie 都会被自动带上,这个是浏览器的机制决定的,所以很多人据此认定 cookie 不安全 。
使用 token 确实避免了CSRF 的问题,但正如上文所述,由于 token 保存在 local storage,它会被 JS 读取,从存储角度来看也不安全(实际上防护 CSRF 攻击的正确方式是用 CSRF token)
所以不管是 cookie 还是 token,从存储角度来看其实都不安全,都有暴露的风险,我们所说的安全更多的是强调传输中的安全,可以用 HTTPS 协议来传输, 这样的话请求头都能被加密,也就保证了传输中的安全 。
其实我们把 cookie 和 token 比较本身就不合理,一个是存储方式,一个是验证方式,正确的比较应该是 session vs token 。
总结session 和 token 本质上是没有区别的,都是对用户身份的认证机制,只是他们实现的校验机制不一样而已(一个保存在 server,通过在 redis 等中间件获取来校验,一个保存在 client,通过签名校验的方式来校验),多数场景上使用 session 会更合理,但如果在单点登录,一次性命令认证上使用 token 会更合适,最好在不同的业务场景中合理选型,才能达到事半功倍的效果 。
好了,这篇文章的内容蜀川号就和大家分享到这里!
- 文案创作怎么做,创作思路及编辑详解?
- seo网络营销的技术有哪些,搜索引擎优化营销详解?
- 英国疫情最新数据详解,港国际航班较疫情前大幅下跌71%?
- 直播口才训练方法详解,如何锻炼自己拥有主播的口才?
- 公司组织架构怎么制定,组织架构设置原则及设置方法详解?
- 科技前沿最新分析,2022年七大前沿科技详解?
- 天蝎座2014年运势 天蝎座2014年运势详解
- 北约有哪些国家,北约的国家组成详解?
- 美团外卖app怎么样,下载及投诉详解?
- 网站如何做seo,网站seo优化流程详解?