github 存储库上烧瓶应用程序的 .wsgi 密钥的标准做法

use*_*324 3 wsgi github secret-key flask

我正在构建一个 Flask Web 应用程序,并希望将其放在 github 存储库中。

我注意到在 .wsgi 文件中

#!/usr/bin/python
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/var/www/hashchain/")

from hashchain import app as application
application.secret_key = 'super secret key'
Run Code Online (Sandbox Code Playgroud)

有一个 application.secret_key 用于加密...

我猜测将flask web应用程序放在github上的标准方法包括克隆整个flask应用程序文件夹而不是.wsgi文件?

这样,贡献者可以在他们自己的本地主机上以调试模式自由运行 Flask 以进一步开发它,如果他们真的想要可以将它部署到他们自己的服务器(但必须编写他们自己的 .wsgi 文件和配置在他们的控制下的服务器) )。

这是正确的思考方式吗?我猜如果我把 .wsgi 文件放在 github 上,它会是黑客的开放季节吗?

  • 我也在猜测,如果我假设已经这样做了?在 github repo 上删除密钥后,我需要更改密钥,因为人们只需查看提交历史即可看到它!

Gre*_* Li 6

执行此操作的一般方法是从环境变量中读取:

import os

application.secret_key = os.getenv('SECRET_KEY', 'for dev') 
Run Code Online (Sandbox Code Playgroud)

请注意,它还为开发设置了默认值。

您可以SECRET_KEY手动设置环境变量:

$ export SECRET_KEY=you_key_here  # use $ set ... in Windows
Run Code Online (Sandbox Code Playgroud)

或者您可以将其保存.env在项目根目录的文件中:

SECRET_KEY=you_key_here
Run Code Online (Sandbox Code Playgroud)

将其添加到.gitignore

.env
Run Code Online (Sandbox Code Playgroud)

然后你可以使用python-dotenv或类似的东西来导入变量:

# pip install python-dotenv
import os
from dotenv import load_dotenv

load_dotenv()

application.secret_key = os.getenv('SECRET_KEY', 'for dev') 
Run Code Online (Sandbox Code Playgroud)