Token一般存放在哪里?各有什么不同?

Token 其实就是访问资源的凭证。
一般是用户通过用户名和密码登录成功之后,服务器将登陆凭证做数字签名,加密之后得到的字符作为token。

它在用户登录成功之后会返回给客户端,客户端主要有这么几种存储方式:

1.存储在localStorage 中,每次调用接口的时候都把它当成一个字段传给后台

2.存储在cookie 中,让它自动发送,不过缺点就是不能跨域

3.拿到之后存储在 localStorage 中,每次调用接口的时候放在 HTTP 请求头的 Authorization 字段里

所以token 在客户端一般存放于 localStorage、cookie 或  sessionStorage 中。

 将token存放在webstroage中,可以通过同域的js来访问。这样会导致很容易受到 XSS攻击,特别是项目中引入很多 第三方js类库的情况下。如果js脚本被盗用,攻击者就 可以轻易访问你的网站,webStroage作为一种储存机制,在传输过程中不会执行任何安全标准。

XSS攻击:cross-site Scripting (跨站脚本攻击) 是一种注入代码攻击。恶意攻击者在目标网站生注入script代码,当访问者浏览网站的时候通过执行注入的script代码达到窃取用户信息,盗用用户身份等。

将token存放在cookie中可以指定httponly,来防止被javascript读取,也可以指定secure ,来保证token只在HTTPS下传输。缺点是不符合Restful 最佳实践,容易受到CSRF攻击。

CSRF跨站点请求伪造(Cross-Site Request Forgery),跟XSS攻击一样,存在巨大的危害性。简单来说就是恶意攻击者盗用已经认证过的用户信息,以用户信息名义进行一些操作(如发邮件、转账、购买商品等等)。由于身份已经认证过,所以目标网站会认为操作都是真正的用户操作的。CSRF并不能拿到用户信息,它只是盗用的用户凭证去进行操作。


————————————————
版权声明:本文为CSDN博主「记忆怪 bug」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_66051368/article/details/124136769

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值