¿Dónde deben guardarse la contraseña de la base de datos o las API keys de una aplicación?
Opciones
- Escritas en el código fuente de la aplicación
- En variables de entorno o en un gestor de secretos (Opción correcta)
- En un comentario dentro del README del proyecto
- En el bundle JavaScript del frontend del sitio
Respuesta
En variables de entorno o en un gestor de secretos, nunca subidas a git
Por qué
Todo lo que está en el código acaba en el historial de git, en la laptop de cada desarrollador y quizá en público. Todo lo que está en el código del frontend lo ve cada visitante.
Carga los secretos en ejecución desde variables de entorno (os.environ["DB_PASSWORD"]) o un gestor de secretos (AWS Secrets Manager, Vault).
Añade los archivos .env a .gitignore.
Recuerda
Los secretos viven fuera del código: variables de entorno o gestor de secretos.