如何保护 Redis 密钥?

How to secure Redis Keys?

有什么方法可以保护 redis 密钥,即使知道 redis 服务器密码的人也无法访问或查看 redis 密钥。

我需要这种安全性,因为我将会话存储在 redis 密钥中。 对于每个用户,都有唯一的密钥作为密钥存储在 redis 中。

如果用户知道密钥,那么他就可以访问任何帐户。

任何建议。

谢谢。

Redis 的设计目的不是按照您使用它的方式使用它,因此这是不可能的,您应该将您的身份验证提升到您的应用程序级别。

Redis 不提供任何 ACL,因此如果没有一些额外的中间件,则无法限制某些客户端对 KEYS 命令的访问。但是如果你只想禁用 KEYS 命令,请将以下行添加到你的 redis 配置中:

rename-command KEYS ""

您可能还应该禁用 MONITORCONFIG 命令:

rename-command CONFIG ""
rename-command MONITOR ""

您可以创建一个哈希键,例如md5,对于每个session id,取hash key为Redis key.

// set
session_id_md5 = md5(session_id)
redis.set(session_id_md5, value);

当你想从Redis获取session信息时,用session id重新创建hash key,然后用hash key搜索Redis

// get
session_id_md5 = md5(session_id);
redis.get(session_id_md5);

感谢大家的建议

我总结如下。

我想为开发人员而非最终用户提供安全保障。我们有一个由少数人组成的团队,他们有权访问 redis 服务器以启动和停止服务以及其他配置,我想限制这些用户访问密钥。

由于 Redis 没有 ACL,所以我认为我们不能做这样的事情。仍然有人有任何其他想法,那么他们是最受欢迎的:)