Asegurando Variables de Entorno en Django: Guía Completa
Introducción
Cuando desarrollamos aplicaciones web, es común trabajar con información sensible como claves API, credenciales de bases de datos y configuraciones del entorno de producción. Estas variables deben manejarse de forma segura para evitar exponer información crítica. Aquí te mostraré cómo usar un archivo
.env
en Django y cómo asegurarte de que esté correctamente protegido.
¿Qué son las variables de entorno y por qué usarlas?
Las variables de entorno son valores externos que tu aplicación utiliza para configurarse. Estas permiten almacenar información sensible de manera segura fuera del código fuente, como:
- Claves secretas (
SECRET_KEY
).
- Credenciales de bases de datos.
- Configuraciones de servicios externos (como
API_KEY
para terceros).
Al usarlas, evitamos incluir estos datos sensibles directamente en el código, lo que reduce riesgos de seguridad, especialmente en proyectos públicos o compartidos.
Configuración inicial del archivo .env
Para manejar archivos
.env
, puedes usar bibliotecas como
python-decouple
o
django-environ
. Aquí usaremos
python-decouple
como ejemplo.
Instala python-decouple
:
pip install python-decouple
Crea un archivo .env
en la raíz del proyecto con información sensible:
SECRET_KEY=your-very-secure-secret-key
DATABASE_URL=postgres://user:password@localhost:5432/mydatabase
DEBUG=True
Carga las variables en el archivo settings.py
:
from decouple import config
SECRET_KEY = config('SECRET_KEY')
DEBUG = config('DEBUG', cast=bool, default=False)
DATABASE_URL = config('DATABASE_URL')
Asegurar el archivo .env
El archivo
.env
contiene información sensible, por lo que debes protegerlo adecuadamente. Sigue estos pasos:
Añade .env
al archivo .gitignore
:
# Ignorar archivos de entorno
.env
Establece permisos en el servidor para evitar accesos no autorizados:
chmod 600 .env
Verifica que no estás subiendo el archivo al repositorio:
git status
Si aparece en los cambios, asegúrate de que está listado en
.gitignore
.
Conclusión
Manejar variables de entorno en Django mediante un archivo
.env
es una práctica esencial para mantener tu proyecto seguro y organizado. Siguiendo estos pasos, no solo protegerás información sensible, sino que también harás tu aplicación más flexible y adaptable a diferentes entornos.