Django项目和gi

2024-06-26 18:01:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我如何处理像github或任何其他公共域版本控制站点上的django这样的web框架的安全性。在

settings.py可以并且将经常包含敏感的数据库信息、密码和密钥,这些信息不能上载到存储库中,也不能以普通视图方式上载。在

一般的做法是什么?最省事的方法是什么?在


Tags: djangopygithub框架视图web信息数据库
3条回答

正如@Selcuk提到的,12 Factor App为如何保护和隔离敏感信息提供了一个很好的指导。在

另一个答案是:Django settings: raise KeyError, raise ImproperlyConfigured or use defaults?
我解释了我倾向于使用的方法,以便尽可能接近12个因素准则。
分类:

  1. 创建一个.env.ini文件,其中包含项目变量:

    DB_USERNAME=myDB
    DB_PASSWORD=for_your_eyes_only
    DEBUG=False
    MY_DJANGO_KEY=no_peeking_this_is_secret
    ...
    
  2. 在您的.gitignore文件中添加.env.env.*.ini和{},从而保护您的敏感信息不被上传到github。在
  3. 创建一个env.example(注意不要在开头用.命名,因为它将被忽略)。在该文件中,您可以简单地copy, paste, rename to .ini or .env将预期配置的示例放入可重新生成。在
  4. 使用^{}读取配置文件:

    settings.py

    from decouple import Csv, config
    
    DEBUG = config('DEBUG', cast=bool, default=True)
    SECRET_KEY = config('MY_DJANGO_KEY')
    ...
    

简单的回答:把它添加到你的.gitignore。也就是说,如果你打算分享你的Django应用,你至少要提供你为你的应用编辑的部分。在

我通常在每个阶段(开发、测试和生产)使用不同的settings.py。我唯一保留在版本控制上的是对应于开发的版本控制。另一个settings.py是内部的,在需要时,它们被复制到服务器的每个实例(测试和生产)。在

希望这有帮助。在

相关问题 更多 >