token存放在 cookie 或 localStorage 哪个更安全?

作者: web快看知识点分类: 计算机技术 发布时间: 2022-04-07 20:44:28 浏览:13464 次

token存放在 cookie 或 localStorage 哪个更安全?

卖火柴的蓝孩纸:
看到亮屏的电脑,打开他的浏览器,打开开发者工具查看localStorage。物理黑客

【回复】用枪顶他脑门——人身黑客[笑哭]
【回复】回复 @四处闲逛的陈某人 :社牛攻击[doge]
正在学习前端中:
token本身是非秘密数据,也就是别人拿到也没有用处,token可以与state一起使用,安全场景即使截获token也没用,与其他一些方案共同保证安全。

Jamesits:
不知道你说的安全具体在什么威胁模型下,但是黑客都能 XSS 了,直接弹窗让用户重新输入密码就成了,你整这些虚的根本没用[doge]

【回复】回复 @伍月伍 : 好一个计算器[doge]
【回复】我以为你要说xss给用户弹个计算器吓唬一下[doge]
2024李逍遥:
省流:建议放到 localStorage。 我的理解,放哪里都不安全。 token 不建议放到 cookie。 放内存里网页刷新就自动丢掉。如果需要保持长时间的登录状态,用 storage

【回复】放在内存里,你有考虑过非spa应用的心情么[doge]
白羽_飞飞飞:
放哪都不安全,最安全的是,全程人脸识别,用的时候必须一直人脸在摄像头前,一离开就不能访问[doge]

T1你李哥:
放内存中,登陆结束就清除,每次登陆重新获取。真要保密,就需要后端多重手段验证,单单拿到一个token想做更多的事,是不太可能的。

【回复】回复 @shirne :刷新不就没了
【回复】回复 @今天没有海鲜 :就是只有变量,不做保存
【回复】@代码干净又卫生 我就是吧用户信息放在她token中
小豆后生:
加油up主!我会一直关注你的![给心心]

格格巫的橙色阿兹猫:
用xss说localstorage相对不安全,是不太对的。xss既然能注入脚本盗取token,也可以注入脚本发http请求(比如转账),然后http请求也会带上cookie。

【回复】回复 @然然比 :不是 我指发http请求那里
【回复】回复 @然然比 :嗯,有些http only的读不出来。。但是可以伪造用户输入点击,或者直接触发业务http请求。既然能xss,注入的脚本就是网站的脚本,能干任何事情。
【回复】回复 @yl12053 :楼主不是说crsf,xss的话都可以直接写脚本把cookie读出来了
玉米面大飞龙:
应用场景不同,不过总的来说cookie里面应该被页面动态读写,且服务器不应该知道的部分可以且应该被localstorage取代,毕竟这玩意出现的晚,它出现之前只能用cookie导致cookie承担了很多它不改承担的东西。cookie就应该的简短的,它每次请求都会被携带,直接设置为httponly让header的事归header就好,token就放cookie里毕竟token就是应该每次请求都发送的。假设是其他的鉴权方式,而且是针对跨域站点的,那就应该放在localstorage里,防止被当前站点的服务器获取,因为用cookie就没什么选择性,服务器是一定能看到里面存了些什么乱七八糟东西的。

【回复】回复 @kookaburraryp :你是指我主楼最后说的针对跨域站点防止被当前站点服务器获取吗?我是指的类似这样的情况:当前站点是一个webui服务,跨域站点提供一些远程API,这些API不用token或者说不止用token来鉴权,还需要对请求整体动态加密(非tls加密接口),或者本身域名根本不提供登陆认证接口不下发cookie,需要通过post提交预共享的token,所以这时就需要由当前的webui站点来负责存储用户的这些凭据信息,但又不应该让提供这个webui的web服务器知道这些凭据。
【回复】cookie锁定host你没法控制叻?
【回复】有些站点不想把token放cookie里,认为这样可以缓解csrf,这似乎有道理,但得不偿失,缓解csrf可以用额外的加密动态字段,一般都是这样做的,新的浏览器安全策略还会默认禁用第三方cookie,这个功能就只剩下一定程度上反爬虫了。
哲学de小新:
这活要是后端愿意干,当然是cookie好,他多写个响应头的事;他不愿意干,那我就放本地存储。只要是存到浏览器里,都不安全。

在吃冰棍:
安全不是token负责的,token的职责只是做请求会话认证的,硬要安全的话其实可以绑定ip、地区、设备之类的,但是这种设计其实又和jwt的理念不符了,前端在这一点上就不用考虑安全,就看你业务场景

【回复】回复 @今天没有海鲜 : token 是令牌, 相当于你使用的门禁卡, 当我拿到你的门禁卡的时候 ...
【回复】回复 @今天没有海鲜 :而且最重要的前提是,token是保证https的前提下使用的,就是你抓包也抓不到,主楼提到的登陆异常检验也是很常见的
【回复】回复 @今天没有海鲜 :像我说的绑定常用ip之类的手段只是业务中很常用的做法,token从来就不是为了安全设计出来的
Redoncc:
现在我的项目都不用 Token 了,如果要安全性,就自己写过期时间,正式环境加密。

【回复】回复 @许Too :局限性太多了 新开tab页 或者重新关了窗口再开不又得重新登陆
【回复】回复 @波涛使者st :内部系统先登录,只要是登录状态就可以获取token授权码;外部系统通过clientid和密码获取token,过期时间几秒钟。cookie也好,隐匿模式也好,数据库里存状态也好都是登录用的,token就是授权码的作用,不能做登录。

web前端开发面试题 网络安全 cookie xss token csrf

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!