首页 文章

我应该把秘密钥匙放在烧瓶里?

提问于
浏览
6

在阅读exploreflask.com时,我了解到最佳做法是使用两个不同的配置文件,一个用于开发,一个用于 生产环境 . 我不明白是否将密钥放在开发或 生产环境 配置中 .

实例文件夹的私有性使其成为定义您不希望在版本控制中公开的键的理想选择 . 这些可能包括您应用的密钥或第三方API密钥 .

我想不应该分享密钥 . 我应该将密钥放在开发配置还是 生产环境 配置中,还是应该为每个配置设置不同的密钥?

1 回答

  • 4

    在开发配置中放置一个密钥,该密钥将提交给repo . 这对开发人员来说很方便,因为他们不必生成一个开始运行应用程序 . 在 生产环境 中,使用 生产环境 配置(永远不会提交到仓库),使用唯一的密钥 . 生产环境 配置应覆盖开发配置 .

    app = Flask(__name__, instance_relative_config=True)
    # default value during development
    app.secret_key = 'dev'
    # overridden if this file exists in the instance folder
    app.config.from_pyfile('config.py', silent=True)
    

    如果您没有办法在 生产环境 中添加私有文件,例如在Heroku上,另一种选择是使用环境变量 . 如果设置了变量,它将覆盖默认值 .

    app.secret_key = os.environ.get('SECRET_KEY', 'dev')
    

相关问题