当前位置:首页 > 每日看点 > 正文内容

面试中被嘲笑Token放在redis里,该如何应对这种情况呢?

卡卷网1年前 (2025-02-24)每日看点210

你就问他代码上线前有没有做review,有没有做灰度发布、蓝绿发布,每次上线有没有做回归测试,有没有定期做渗透测试、漏洞扫描,安全漏洞有没有做定期修复,生产环境有没有做网络隔离(划分DMZ、内网),有没有准入控制,程序配置文件中密码字段有没有加密,敏感数据落盘(包含日志、数据库)有没有做脱敏和加密。


如果他们公司有一条没做到,就怼他: 垃圾公司。

如果他们公司都做到了,那你的确无话可说。


现在主流的Token方案主要是两种

第一种是传统的cookie/session方案,工作原理就是服务器生成一个随机会话ID, 并下发给客户端,此方案简单,但是对于分布式、多副本需要用例如redis、mysql之类的服务进行数据共享。直接存token不是什么大问题,但是如果遇到数据库数据泄露可能会导致攻击者通过token登陆到后台,解决方案有很多,比较简单的做法就是存token的hash值,这样可以避免因数据泄露导致的身份伪造。

第二种就是jwt方案,此方案最大优势就是无状态,不用保存会话信息就可以实现分布式、多副本。但缺点是没有会话列表以及吊销会话困难。如果有人token被泄露了,要么等token过期,要么修改jwt密钥让所有会话失效。想要解决此问题,通常就需要引入redis、mysql之类的服务存储token信息,可以将所有已登陆的token信息存入数据库,吊销时删除相关token信息,也可以建立token黑名单,将吊销的token信息存入此黑名单。但是直接存入完整token也可能存在方案一类似的风险,解决方案存hash或者是在payload中插入一个tokenid字段,数据库只记录id字段,这样就可以避免因数据泄露导致的身份伪造。


对于token直接入库我没有任何否认的意思,每个公司/项目所需要的安全程度不一样,你们项目如果能接受这个风险,完全可以直接入库。我提到的存token的hash或jwt的tokenid,只是基于存在的风险点,提供了一点建议。存token还是存hash,无非就是一行代码的事情。

如果你秉着技术探讨的态度说token入库完全没有风险,那我可以给你探讨探讨,否则,可以忽略我的论点:

按照问题中所说的token放redis,从安全角度来说:

  1. 我们不能保证所有维护的人都能有这个觉悟,保证redis只能内网访问,并且都有强口令保护,恰好我们公司另一个团队,以前就出过这样一个事情:redis直接允许公网访问,密码还是弱口令,结果服务器遭挖矿,数据倒是没有泄露。这样的事情我在很多技术群(QQ群)里,看到类似的案例。
  2. 我们不能保证redis所在的内网,都拥有固若金汤的防火墙规则。恰好我们公司另一个团队又出过类似的事情,为了方便调试把服务器的docker远程控制端口开放到公网,还不需要任何认证就可以使用,结果也惨遭挖矿。如果黑客当时通过横向渗透,我相信可以拿下其他一些服务器的权限,因为很多公司(包括我们公司),内网之间的防护做的并不是特别安全,拿下redis服务器权限也不是不可能。
  3. 你没法保证你们开放到公网的所有服务都绝对安全,例如以前的fastjson漏洞,或者你的程序存在SQL注入漏洞、任意命令执行漏洞等。

或许你认为你不会存在这些问题,但你不能保证你没有猪队友。

你或许会认为出现问题再修复,只要不是你的token自身的问题就不归你管。那我只能说,想法没错,继续保持。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/02/11134.html

分享给朋友:

相关文章

淘宝终于支持微信支付:这一刻我等了太久

淘宝终于支持微信支付:这一刻我等了太久

今天微博圈就被淘宝的消息刷屏了。没错,正是关于淘宝即将全面支持微信支付的消息。这条消息一出,立刻登上了微博热搜,毕竟社交巨头和电商巨擘的联手,实在令人瞩目。不少大媒体也纷纷跟进报道,这阵势真是令人惊叹。网友们纷纷表示这是巨大的变革,终于可以...

为什么程序员不自己开发微信小程序这类似的东西赚钱?

为什么程序员不自己开发微信小程序这类似的东西赚钱?

你如果有好的想法是可以挣钱的首先大家说的个人资质限制确实多,也不建议直接拿个人资质去用小程序盈利,因为很麻烦我说一下我的大体操作:1.首先去申请个体户,这个可以用住宅来注册申请,而且速度很快就几天就下来了,经营类目主要是互联网销售这些,不过...

普通人一部手机用多久?

普通人一部手机用多久?

各位知友,你们的现在的手机用了多久了呢?回看国外分析机构TechInsights的报告,目前大家的用机周期是越来越长了,在国内,也达到了「40个月」,就是很多人至少三年半才会换一次手机。仔细想想,不对呀,现在新机不是一直出吗?为什么大家都不...

k70和红米note14pro+咋选啊?

k70和红米note14pro+咋选啊?

首选红米K70,可满足题主的功能需求。红米 Note 14 pro+的使用者定位并不是学生,红米K70的使用者定位才是学生。一、k70和红米note14pro+各自的参数红米K70推出的定位初衷,是主打性能为主。最佳使用对象是喜欢游戏者,...

小米14和华为mate60怎么选?

手持荣耀20,用了五年多了,使用仍然较为流畅,但是电池不太行了,于是2024年8月在家乡的小米之家购买了小米14(12+256),用了快两个月吧,说说使用体验。 外观层面,由于我使用的荣耀20放在现在妥妥地属于小屏,习惯了小屏...

为什么大家都说手机性能永远超不过PC?

最新的天玑9400牛逼吧,堪称PC级CPU,测试成绩16W功耗能跑9500分,1.8W能跑3000分,GPU也差不多是这个情况。手机电池一般是4000-5000毫安时,电压3.7V。也就是说,手机正常满载5W功耗下,这个电池能支持运行4个小...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。