variable sesiones custom python session flask session-cookies

python - sesiones - ¿Por qué no generar la clave secreta cada vez que se inicia Flask?



sesiones flask (1)

La clave secreta se usa para firmar la cookie de sesión. Si tuviera que reiniciar su aplicación y regenerar la clave, todas las sesiones existentes quedarían invalidadas. Probablemente eso no sea lo que desea (o al menos, no es la forma correcta de invalidar las sesiones). Se podría hacer un caso similar para cualquier otra cosa que se base en la clave secreta, como los tokens generados por itsdangerous para proporcionar URL de restablecimiento de contraseña (por ejemplo).

Es posible que la aplicación deba reiniciarse debido a un bloqueo, o porque el servidor se reinició, o porque está presionando una corrección de errores o una nueva característica, o porque el servidor que está utilizando genera nuevos procesos, etc. Por lo tanto, no puede confiar en el servidor para siempre.

La práctica estándar es tener alguna clave desechable comprometida en el repositorio (para que haya algo allí para las máquinas de desarrollo) y luego establecer la clave en la configuración local al implementar. De esta manera, la clave no se filtra y no necesita ser regenerada.

También existe el caso de ejecutar sistemas secundarios que dependen del contexto de la aplicación, como Celery para ejecutar tareas en segundo plano o múltiples instancias de carga equilibrada de la aplicación. Si cada instancia en ejecución de la aplicación tiene configuraciones diferentes, puede que no funcionen juntas correctamente en algunos casos.

Al usar sesiones, Flask requiere una clave secreta. En cada ejemplo que he visto, la clave secreta se genera de alguna manera y luego se almacena en el código fuente o en el archivo de configuración.

¿Cuál es la razón para almacenarlo permanentemente? ¿Por qué no simplemente generarlo cuando se inicia la aplicación?

app.secret_key = os.urandom(50)