gpt4 book ai didi

python - 如何使用 virtualenv 和 Django 隐藏我的 secret_key?

转载 作者:太空狗 更新时间:2023-10-29 20:49:33 27 4
gpt4 key购买 nike

我正在使用 DjangopythonvirtualenvvirtualenvwrapperVagrant .

到目前为止,我只是将我的 secret_key 留在了 settings.py 文件中。这适用于本地文件的文件。但是我已经将我的文件放在 Git 中。我知道这对于生产 (Apache) 是 Not Acceptable 。

隐藏我的 secret_key 的正确方法是什么?

我应该使用 virtualenv 来隐藏它吗?

最佳答案

隐藏 secret 的方法有很多种。

  1. 使用另一个非版本控制的文件。

    创建一个新文件 secrets.py 或您拥有的文件并将您的 secret 放入其中。把它放在你的设置文件旁边,把所有的 secret 都放在那里;然后在您的设置文件中将 from secrets import * 放在顶部。然后,像 Rahul 说的那样,添加一个 .gitignore 文件并将 secrets.py 添加到这个文件中,这样它就不会被提交。

    这种方法的缺点是该文件根本没有源代码控制;如果你失去了它,你就是 SOL。

  2. 使用环境变量。

    使用 Apache SetEnv or PassEnv directives将环境变量传递给您的进程,然后在您的设置文件中使用 os.environ() 检索它们。这样做的好处是,在开发中,您可以设置新变量(就像 VAR1=whatever VAR2=whatever ... ./manage.py runserver ... 一样简单)或通过任何机制设置它们你用来启动你的开发项目。

    缺点是一样的;如果您丢失了 Apache 配置,那您就完蛋了。

  3. 结合方法 1 使用第二个存储库。

    就我个人而言,我喜欢拥有一个专用的 secrets 存储库的想法,您可以将所有的 secret 放入其中,并妥善保管该存储库。然后,作为部署过程的一部分,您可以使用 git archive 或其他类似命令为您要部署的位置提取正确的 key ,并且您可以备份您的 secret 并使其处于版本控制之下容易地。您还可以将 secrets 存储库中的适当文件添加到您站点存储库的 .gitingore 文件中,以免意外提交。

    这样做的缺点是您有另一个额外的存储库和另一个部署步骤。我个人认为这是值得的,但这真的取决于你。

一般来说,您希望它越安全,访问这些 secret 就越不方便。不过,这确实是一般规则。

关于python - 如何使用 virtualenv 和 Django 隐藏我的 secret_key?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31883505/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com