如何保护 Redis 密钥?
How to secure Redis Keys?
有什么方法可以保护 redis 密钥,即使知道 redis 服务器密码的人也无法访问或查看 redis 密钥。
我需要这种安全性,因为我将会话存储在 redis 密钥中。
对于每个用户,都有唯一的密钥作为密钥存储在 redis 中。
如果用户知道密钥,那么他就可以访问任何帐户。
任何建议。
谢谢。
Redis 的设计目的不是按照您使用它的方式使用它,因此这是不可能的,您应该将您的身份验证提升到您的应用程序级别。
Redis 不提供任何 ACL,因此如果没有一些额外的中间件,则无法限制某些客户端对 KEYS
命令的访问。但是如果你只想禁用 KEYS
命令,请将以下行添加到你的 redis 配置中:
rename-command KEYS ""
您可能还应该禁用 MONITOR
和 CONFIG
命令:
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,所以我认为我们不能做这样的事情。仍然有人有任何其他想法,那么他们是最受欢迎的:)
有什么方法可以保护 redis 密钥,即使知道 redis 服务器密码的人也无法访问或查看 redis 密钥。
我需要这种安全性,因为我将会话存储在 redis 密钥中。 对于每个用户,都有唯一的密钥作为密钥存储在 redis 中。
如果用户知道密钥,那么他就可以访问任何帐户。
任何建议。
谢谢。
Redis 的设计目的不是按照您使用它的方式使用它,因此这是不可能的,您应该将您的身份验证提升到您的应用程序级别。
Redis 不提供任何 ACL,因此如果没有一些额外的中间件,则无法限制某些客户端对 KEYS
命令的访问。但是如果你只想禁用 KEYS
命令,请将以下行添加到你的 redis 配置中:
rename-command KEYS ""
您可能还应该禁用 MONITOR
和 CONFIG
命令:
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,所以我认为我们不能做这样的事情。仍然有人有任何其他想法,那么他们是最受欢迎的:)