我正在创建(在Python中)应该使用Redis数据库的桌面应用程序。该应用程序将连接到本地数据库,我需要受保护的Redis访问。我知道我可以在/etc/redis/redis.conf
插入行requirepass pswd
中设置密码,但未经授权的用户可以读取此配置文件。在这种情况下,确保安全的方法是什么?我知道在远程服务器上使用Redis可以解决这个问题但是如果只有本地数据库怎么办?
答案 0 :(得分:0)
你不能真正安全地存储密码......你可以做各种事情来尝试隐藏它......但最终没有办法在python中安全地存储东西,以便访问真的受到保护......有些东西你可以做的是将密码分解成部分......并应用一些转换
p1="Hello"
p2="world15"
mypassword = hashlib.sha1(p1+p2).digest()
print mypassword #use whatever prints here as your redis password if you cannot change the password redis is using you can use other simillar techniques to obscure the password
之后你可以将它编译成pyc或将其打包成二进制文件......但是如果有人想要它可以找到它
我认为有一个新的pep建议处理安全令牌......但我不知道他们何时或是否会实施它
答案 1 :(得分:0)
您可以像在linux上的任何其他文件一样保护redis配置文件。这里我在Debian上测试它,所以我在他们的包中使用默认值(redis用户名,...)。
cd /etc/redis
ls -l
在这里看起来应该与此相似:-rw-r--r-- 1 root root 10K Mon 01 12:30 redis.conf
r/w
访问权限,这是可以的,并且用户组具有r
访问权限,这是您想要的redis。
因此,请离开Redis使用的用户组(在Debian上每个用户has its own group)并将其设置为该文件的组:
sudo chown root:redis redis.conf
sudo chmod 640 redis.conf
最后你的redis.conf文件应如下所示:
-rw-r----- 1 root redis 10K Mon 01 12:30 redis.conf
您现在可以重新启动redis(sudo service redis-server restart
),一切正常。