【问题标题】:Hiding secure django settings info on webfaction在 webfaction 上隐藏安全的 django 设置信息
【发布时间】:2014-06-30 14:52:37
【问题描述】:

我正在尝试在 webfaction 上隐藏安全信息,例如 django 应用程序的数据库密码。
但我找不到使用环境变量设置这些信息的方式和位置?

【问题讨论】:

    标签: django webfaction


    【解决方案1】:

    我开发了一个可以用 pip 安装的包:

    pip install djangosecure
    

    在你的 settings.py 中你可以使用类似的东西:

    import djangosecure
    
    ...
    
    DATABASES = {
        'default': djangosecure.get_database('production'),
    }
    
    ...
    

    第一次运行管理命令时,系统会提示您输入数据库信息。

    它可用于保护更多设置,请参阅自述文件: https://github.com/rafahsolis/djangosecure

    更新: 更新:djangosecure>=0.0.4 不再有 get_database() 函数,它现在基于类工作,所以新用法是:

    from djangosecure import DjangoDatabaseSettings
    databases = DjangoDatabaseSettings(os.path.join(PROJECT_ROOT, 'databases.cnf'), 
    crypto_key_file='path/to/your/cryptokey)
    
    DATABASES = {
        'default': 'default': databases.settings('production'),
    }
    

    【讨论】:

    • 我是否正确理解它使用加密来保护您在磁盘上的设置,但密钥也存在于磁盘上的某个位置,因此可以通过 root 访问来破解它?基本上,它解决了传输/源代码控制问题,对吧?
    • 没错,使用它可以避免不小心将密码推送到存储库...
    • 这看起来很有趣.. 伟大的工作@Rafa。我很想知道这比os.env.get('DB_PASSWORD', None)
    • 密码使用AES256加密保存,因此在某些.profile中不会以纯文本形式保存,因此增加了一些安全性。我还喜欢这样一个事实,即当您运行管理命令时会提示数据库设置,让我只需将 ...('production') 更改为 ...('develop') 就可以快速从一个数据库更改为另一个数据库使用不同的数据库配置
    【解决方案2】:

    将它们添加到您的bash_profile

    在运行 SSH 后:

    nano ~/.bash_profile
    

    然后添加所需的变量并保存。示例:

    export DATABASE_URL=postgres://username:password@host:port/databasename
    

    这将创建一个名为DATABASE_URL 的环境变量,其中包含您的字符串内容。要进行测试,请在终端中运行 echo $DATABASE_URL

    【讨论】:

    • 所有 python 版本都可以访问这些变量吗?
    • 是的。解析上述数据库字符串的最简单方法是使用找到heredj-database-url 包。不过,一般来说,要通过 python 访问环境变量,您可以使用os.environ.get('DATABASE_URL')。将DATABASE_URL 更改为您想要获取的任何环境变量。此外,请确保在使用 os.environ.get 之前拥有 import os
    • 在更改后重新加载 .bash_profile(即运行 ..bash_profile)。此外,如果您使用的是 apache,请不要使用重新启动脚本,而是停止然后重新启动它。
    猜你喜欢
    • 1970-01-01
    • 2013-09-12
    • 2013-09-08
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    相关资源
    最近更新 更多