Pregunta ¿Dónde debo colocar la clave secreta en Flask?


Mientras leo exploreflask.com, Aprendí que es una buena práctica usar dos archivos de configuración diferentes, uno para desarrollo y otro para producción. No entiendo si colocar la clave secreta dentro de la configuración de desarrollo o producción.

La naturaleza privada de la carpeta de instancia lo convierte en un gran candidato para definir claves que no desea que se expongan en el control de versiones. Estos pueden incluir la clave secreta de su aplicación o las claves API de terceros.

Supongo que la clave secreta no debería ser compartida. ¿Debería poner la clave secreta en la configuración de desarrollo o la configuración de producción, o debería tener una clave diferente para cada configuración?


6
2018-06-16 16:28


origen


Respuestas:


Coloque una clave secreta en la configuración de desarrollo, que se comprometa con el repositorio. Esto es conveniente para los desarrolladores, porque no tienen que generar uno para comenzar a ejecutar la aplicación. En producción, use una configuración de producción (que nunca se compromete con el repositorio), con una clave secreta única. La configuración de producción debe anular la configuración de desarrollo.

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)

Si no tiene una manera de agregar archivos privados en producción, como en Heroku, otra opción es usar variables de entorno. Si la variable está configurada, anula el valor predeterminado.

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

4
2018-06-16 16:33