- 主题:jwt相比普通token,优势在哪?
基于 Redis 的“大规模分布式存储”本身就很麻烦。
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 标 题: Re: jwt相比普通token,优势在哪?
: 发信站: 水木社区 (Fri Mar 15 12:39:57 2019), 站内
:
: 但为什么用 session 就一定会依赖”大规模“分布式存储呢。jwt 不用大规模分布式存储的”优势“依赖于 session 管理必须用”大规模“分布式存储这个劣势。再者,多大算大规模呢?分布式存储可是动不动玩 PB 级别的数据。。TB 级我看是没多大规模。
:
: 再来就是大规模分布式存储很麻烦这件事。问题就来了,真的很麻烦吗?又不是 ceph/swift 这种对象存储、块存储。就算是使用分级存储的情况下,我觉得也真心很简单了。
:
: 不能用 redis 存储这件事是比较反后端程序员直观的,也刚好跟本线索的”大规模分布式存储“有关。有兴趣可以聊一下。
:
: 【 在 menghan (skybluee) 的大作中提到: 】
: : 我明白你想知道 jwt 到底比 session(id) 方案好在哪儿,其实我已经说了,可以通过算签名比对的方式不依赖大规模分布式存储。
: : 但是你觉得这有什么了不起,对不对,session 的方案已经很全很完善了,依赖一个存储有啥问题,更何况说不定可以使用 redis,redis 又快又方便,为什么要开发另一类东西。
: : 我想说,你对大规模,对什么叫分布式存储,一无所知啊
: : ...................
:
: --
: 灭绝人性啊
:
:
: ※ 来源:·水木社区 newsmth.net·[FROM: 111.142.201.*]
--
FROM 116.24.65.*
其实,可以想出很多优化方案的,这件事情我刚好干过。我甚至用 c++ 写过一个仿 redis (内存+fork bgsave)的分布式存储方案。
【 在 xWvxYWYxvWx (xWvxYWYxvWxxWvxYWYxvWx) 的大作中提到: 】
: 基于 Redis 的“大规模分布式存储”本身就很麻烦。
--
FROM 111.142.201.*
拜托人家说的是做登录认证用的
csrf 这东西弱的不要不要的,只防别的网站嵌个假链接让你点这么点儿事儿
只要你的接口遵守 restful,get 不改数据,这攻击就没效
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 你还是仔细看一下前面的帖子吧。上面几个人在说 jwt 要做 csrf 得依赖 fallback 方案了。
: 顺便说一下想拿 jwt 来代替 session 还有一个问题。jwt 如果要主动失效旧的 token,那用户就不得不总得重新登录。这通常是反用户体验的——别跟我说什么不安全,这就是业务需求。而 session 方案,存个天长地久都没问题。
--
FROM 101.98.83.*
你这不就是 apple 版的一贯论调么——这个功能不重要。
【 在 eGust (十年) 的大作中提到: 】
: 拜托人家说的是做登录认证用的
: csrf 这东西弱的不要不要的,只防别的网站嵌个假链接让你点这么点儿事儿
: 只要你的接口遵守 restful,get 不改数据,这攻击就没效
: ...................
--
FROM 111.142.201.*
连这个东西的道理都不明白就在那强调重要性?要不给我们讲讲 py 的高大上实现?反正我们 rails 这边的实现弱的很,一半一半的内容,直接 xor 拼出来的后一半。
安全问题都是讲成本的,就像前面说的,你这么在意 csrf,jwt 不放 cookie 不就完了?
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 你这不就是 apple 版的一贯论调么——这个功能不重要。
--
FROM 101.98.83.*
安全问题从来就不是一个东西能解决所有的问题,你非把没多大关系的东西往这上面硬套,觉得有意思吗?github 你一个 form 发呆超过几分钟就保存不了,必须刷新。我们公司用的 google 账户,一个浏览器隔个三五天没用过,下次登录就得重新输密码。就算我天天上班用的电脑,时不时的也让我重新输入一次密码。
你觉得 csrf 异常重要所以还要单独 invalidate?我做个 jwt 设超时行不,5分钟没提交对不起保存不了。至于用户体验,你不是说 csrf 安全问题最重要么?
反正对我来说,不做 csrf 客户账户里面的东西别人动不了,get 看到的也是你自己的东西,屁大点儿事儿。钓鱼网站要是这种假链都做,那真的是活不了多久了
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 你这不就是 apple 版的一贯论调么——这个功能不重要。
--
FROM 101.98.83.*
说起来4年前用play的时候,就见过它们鼓吹的stateless,确实也相对方便一点,逻辑也是secKey hash签名加上数据存客户端传递。JWT算是一个更加公开和规范的版本。
业务要求无需登录,APP级的最好直接上指纹等原生安全方案存登录信息,嵌入微信/支付宝就依赖平台的oauth能力按说也够了。
不过前面有人说redis不适合session或者是分布式redis很难?不知道何解?
另外,国内(我觉得也包括国外),所谓的企业级,并发量对redis根本形不成挑战啊,一个哨兵模式,不用分布式的redis就挺OK了。
【 在 eGust 的大作中提到: 】
: 安全问题从来就不是一个东西能解决所有的问题,你非把没多大关系的东西往这上面硬套,觉得有意思吗?github 你一个 form 发呆超过几分钟就保存不了,必须刷新。我们公司用的 google 账户,一个浏览器隔个三五天没用过,下次登录就得重新输密码。就算我天天上班用的电脑,时不时的也让我重新输入一次密码。
: 你觉得 csrf 异常重要所以还要单独 invalidate?我做个 jwt 设超时行不,5分钟没提交对不起保存不了。至于用户体验,你不是说 csrf 安全问题最重要么?
: 反正对我来说,不做 csrf 客户账户里面的东西别人动不了,get 看到的也是你自己的东西,屁大点儿事儿。钓鱼网站要是这种假链都做,那真的是活不了多久了
: ...................
--
FROM 123.127.54.*
是啊,如果用个redis这么难,那前面有人为了解决invalid token问题连消息中间件都用上了,还觉得这个代价轻,用的很普遍。我就呵呵了,会比redis更普遍吗。想起一个成语,叫削足适履。不说jwt有没有用,但如果你确实需要invalid token而把消息中间件加上的话,还是老实用redis吧。
【 在 haili 的大作中提到: 】
: 说起来4年前用play的时候,就见过它们鼓吹的stateless,确实也相对方便一点,逻辑也是secKey hash签名加上数据存客户端传递。JWT算是一个更加公开和规范的版本。
: 业务要求无需登录,APP级的最好直接上指纹等原生安全方案存登录信息,嵌入微信/支付宝就依赖平台的oauth能力按说也够了。
: 不过前面有人说redis不适合session或者是分布式redis很难?不知道何解?
: ...................
--
FROM 223.104.3.*
说实话,个人觉得就一个系统怎样都好,就算一个 session 有10k的信息,也轻松达到单机上百万个用户
要是有5个独立的共享用户群的系统呢?哪怕是 web 也可以直接 jwt 然后 cors 访问其它系统 api,这不就省出来5套 redis 了么?
【 在 haili (人尔有窍 风吹为籁) 的大作中提到: 】
: 说起来4年前用play的时候,就见过它们鼓吹的stateless,确实也相对方便一点,逻辑也是secKey hash签名加上数据存客户端传递。JWT算是一个更加公开和规范的版本。
: 业务要求无需登录,APP级的最好直接上指纹等原生安全方案存登录信息,嵌入微信/支付宝就依赖平台的oauth能力按说也够了。
: 不过前面有人说redis不适合session或者是分布式redis很难?不知道何解?
: ...................
--
FROM 122.60.88.*
谁知道了,如果用个 jwt 这么难
【 在 exbf (忘记我,向前进) 的大作中提到: 】
: 是啊,如果用个redis这么难,那前面有人为了解决invalid token问题连消息中间件都用上了,还觉得这个代价轻,用的很普遍。我就呵呵了,会比redis更普遍吗。想起一个成语,叫削足适履。不说jwt有没有用,但如果你确实需要invalid token而把消息中间件加上的话,还是老实
--
FROM 122.60.88.*