繁体   English   中英

Redis 过期复制到从站

[英]Redis expiration replication to slaves

我有兴趣使用 Redis 在服务器端存储客户的 session 以进行授权。 基本上,当客户登录时,hash 将存储在 Redis 集群中,并将密钥返回给客户。 在每个请求中,客户端将密钥作为 header 传递,服务将检查 hash 是否仍然存在于 Redis 中,如果不存在,则将返回一条错误消息。 该密钥将在 X 分钟后过期,导致使用该密钥的任何请求失败。 但是,我一直在网上阅读到一些人因为过期复制到奴隶的方式而遇到问题。 从站仅在收到来自主站的 del 命令时才使密钥过期,因此如果在此命令之前对从站进行“获取”,则将返回该密钥的值。

https://github.com/antirez/redis/issues/187

这个问题还存在吗? 这对我来说似乎是个大问题,会造成一些安全漏洞。 对于陈旧数据来说可能没什么大不了的,但是当用于授权时这很重要

A)不,不是真的——自 2014 年以来,即使从属尚未从复制 stream 收到 DEL,过期密钥的 GET 也会在从属上返回“未找到”。突出的问题与 EXISTS 相关与 GET 不一致,仅当您依赖 EXISTS 命令的 output 时才有意义。

b) 完全独立于此问题,复制滞后的可能性始终存在。 您的应用程序的安全性不应依赖于副本始终是最新的前提。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM