安全存储Redis密码

时间:2015-10-08 17:34:58

标签: python security redis passwords

我正在创建(在Python中)应该使用Redis数据库的桌面应用程序。该应用程序将连接到本地数据库,我需要受保护的Redis访问。我知道我可以在/etc/redis/redis.conf插入行requirepass pswd中设置密码,但未经授权的用户可以读取此配置文件。在这种情况下,确保安全的方法是什么?我知道在远程服务器上使用Redis可以解决这个问题但是如果只有本地数据库怎么办?

2 个答案:

答案 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用户名,...)。

  1. 首先,请转到目录:cd /etc/redis
  2. 如果你ls -l在这里看起来应该与此相似:
    -rw-r--r-- 1 root root 10K Mon 01 12:30 redis.conf
  3. 所以你看到该文件归root所有。您还看到root具有r/w访问权限,这是可以的,并且用户组具有r访问权限,这是您想要的redis。 因此,请离开Redis使用的用户组(在Debian上每个用户has its own group)并将其设置为该文件的组: sudo chown root:redis redis.conf
  4. 最后所有其他用户仍然具有读取权限。只是禁止对他们进行读取访问:sudo chmod 640 redis.conf
  5. 最后你的redis.conf文件应如下所示:
    -rw-r----- 1 root redis 10K Mon 01 12:30 redis.conf

    您现在可以重新启动redis(sudo service redis-server restart),一切正常。