有没有办法保护redis密钥,即使是知道无法访问或查看redis密钥的redis-server密码的人。
我需要这种安全性,因为我将会话存储在redis密钥中。 对于每个用户,都有唯一的密钥,以redis形式存储为密钥。
如果用户知道密钥,那么他可以访问任何帐户。
任何建议。
感谢。
答案 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,所以我认为我们不能做这些事情。仍然有人有任何其他想法,然后他们是最受欢迎的:)