Redis 加上密码后,整体性能下降 20%?

2024-05-12 17:19:17 +08:00
 cuishuang

这太震惊了...(图片来自极客时间 安全攻防技能 30 讲)

难道每次执行什么 get,set 操作,都会检测一遍密码吗? 我理解不能像 mysql 一样,有个连接池,初始化一些长连接,之后就不用再认证/鉴权什么的了

8930 次点击
所在节点    Redis
43 条回复
Zzdex
2024-05-13 00:30:55 +08:00
有点扯
tomczhen
2024-05-13 01:42:42 +08:00
IT 民科
WonderCc
2024-05-13 07:44:19 +08:00
这不扯淡吗
flyqie
2024-05-13 08:07:27 +08:00
每次链接都 auth 一下这玩法太智障了,redis 这么用了怕不是被人笑话一辈子。。

极客时间的课水到这种程度了吗?
flyqie
2024-05-13 08:08:26 +08:00
@flyqie #24

打错了。。

应该是每次操作
Rehtt
2024-05-13 08:23:19 +08:00
@GeekGao 零信任模型
shakeyo
2024-05-13 09:04:03 +08:00
他这是每次执行命令都用新连接?
whoosy
2024-05-13 09:04:13 +08:00
用脚趾头想想都不可能
crystom
2024-05-13 09:07:01 +08:00
php 传统 fpm 模式是这样的,不过一般也用在性能敏感的场景像后台管理,没问题的
me1onsoda
2024-05-13 09:10:34 +08:00
要连接池这个,jedis 不就是吗
cheng6563
2024-05-13 09:42:28 +08:00
没搞连接池吧,每次发指令都重新验密码
8355
2024-05-13 09:47:23 +08:00
我没看源码。。。但是我觉得如果 redis 是这样设计的 那连接的意义在哪里? 这不符合常规认知。。。。。
vczyh
2024-05-13 10:01:03 +08:00
别的不清楚,我写过 RESP 协议,客户端认证的时候只需要发送 AUTH command ,这个之后不会每次发送认证信息,只需要发送执行的 command 就可以,所以理论上不会影响性能。
vczyh
2024-05-13 10:01:21 +08:00
InDom
2024-05-13 10:12:29 +08:00
作为一个经常使用 telnet 当 redis-cli 的人表示,起码 auth 只会在创建链接的时候发一次密钥后续是不需要发的。

至于每次请求服务端会检查,我觉得一个稍微成熟的开发都不会出现这个问题。

至于测试环境,是不是每次都 new Redis 了?

如果是,那结果就算是 50% 我也理解。
tingyunsay
2024-05-13 10:18:55 +08:00
csdn 即视感
wetalk
2024-05-13 10:23:51 +08:00
极客时间很多作者纸上谈兵,根本没有实操经验,信他们不如信坛子里的老哥
Dream95
2024-05-13 11:11:39 +08:00
这样的也能卖课
error0
2024-05-13 11:20:55 +08:00
在 server.c 的 processCommand() 方法执行命令之前 会执行 authRequired() , 判断 client 的 authenticated 是否为 1 (如果开启认证)。执行 authCommand 的时候如果账号密码正确就标识为 1 。


processCommand: https://github.com/redis/redis/blob/8a05f0092b0e291498b8fdb8dd93355467ceab25/src/server.c#L3948

authCommand: https://github.com/redis/redis/blob/8a05f0092b0e291498b8fdb8dd93355467ceab25/src/acl.c#L1490
nothingistrue
2024-05-13 11:31:48 +08:00
这大概是「几十年」前的销售推广,因为很早就把技术人员开了只剩商务人员,就一直这么往外面忽悠人。代码安全审查领域,你只要见得多了,就总会碰到这样的坑爹玩意,客户资质越高,越容易碰到。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1040022

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX