如何保护Redis Keys?

时间:2016-09-27 09:01:09

标签: redis jedis

有没有办法保护redis密钥,即使是知道无法访问或查看redis密钥的redis-server密码的人。

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

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

任何建议。

感谢。

4 个答案:

答案 0 :(得分:2)

Redis不是按照您使用它的方式使用的,所以这是不可能的,您应该将您的身份验证升级到您的应用程序。

答案 1 :(得分:2)

您可以创建一个哈希键,例如对于每个会话ID,md5,并将哈希键作为 Redis密钥

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

如果要从Redis获取会话信息,请使用会话ID重新创建散列密钥,然后使用散列密钥搜索Redis

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

答案 2 :(得分:0)

Redis不提供任何ACL,因此如果没有一些额外的中间件,则无法限制对某些客户端的Mat * f = new Mat(2,2,CV_32FC1); f->at<float>(0,0) = 1; f->at<float>(0,1) = 2; f->at<float>(1,0) = 3; f->at<float>(1,1) = 4; Mat ff; f->copyTo(ff); cout<<ff; 命令的访问。但是,如果您只想禁用KEYS命令,请在redis配置中添加以下行:

KEYS

您可能还应禁用rename-command KEYS "" MONITOR命令:

CONFIG

答案 3 :(得分:0)

感谢大家的建议

我总结如下。

我想在开发人员而不是最终用户之间提供安全性。我们有一个少数人的团队,他们可以访问redis服务器来启动和停止服务以及其他配置,我想限制这些用户访问密钥。

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