Despliegue Seguro de Aplicaciones Web y Protección de API Keys
Clase 19 de 20 • Curso de API REST con Javascript: Performance y Usabilidad
Resumen
¿Cómo proteger la API Key en un despliegue?
Un despliegue exitoso implica mantener la seguridad de las API Keys en nuestras aplicaciones. Al desplegar, siempre surge el desafío de cómo proteger estas claves sensibles, sobre todo en aplicaciones frontend. Desgraciadamente, cuando solo trabajamos con archivos estáticos, la protección de estas claves es limitada. Todo el código en el frontend es público, y con herramientas básicas como el inspector de elementos, cualquiera puede acceder a nuestras claves. Sin embargo, existen estrategias para mitigar este riesgo.
¿Qué riesgos hay al exponer la API Key?
- Visibilidad pública: Todas las peticiones HTTP en el frontend pueden revelar la API Key.
- Requiere cambios en el repositorio: Al conectar Git con el sistema de deploy, tendríamos que incluir la API Key, exponiéndola más aún.
Estrategias para proteger la API Key
-
Uso consciente de The MovieDB: Esta plataforma permite monitorear el uso de la API Key, mostrando quiénes la están utilizando y cuántas solicitudes se realizan al día. Esto es una buena práctica para detectar usos no deseados.
-
Controlar el backend: En lugar de dejar la clave en el frontend, podríamos tener un backend que almacene la API Key y gestione las solicitudes a la API de forma privada. Esto se puede lograr utilizando servicios como:
- Heroku
- Vercel
- AWS, Google Cloud Platform, Azure (para opciones más avanzadas)
-
Variables de entorno: En un backend personal, puedes establecer variables de entorno para almacenar la API Key de manera segura, de modo que no esté presente en el código visible del repositorio.
¿Cómo desplegar en GitHub Pages sin comprometer la seguridad?
Para llevar a cabo un despliegue usando GitHub Pages, aquí tienes un proceso a seguir teniendo en cuenta las advertencias de seguridad:
-
Ignorar archivos sensibles: Añadir
secrets.js
, donde guardas API Keys, en.gitignore
para evitar subirlo al repositorio público. -
Crear una rama para deploy: Para desplegar, crea una nueva rama y quita el archivo
secrets.js
de tu.gitignore
temporalmente para poder agregarlo a la rama de despliegue.git checkout -b githubpages git add --all git commit -m "Despliegue de archivos estáticos" git push origin githubpages
-
Configurar GitHub Pages: En la configuración de tu repositorio en GitHub, selecciona la rama
githubpages
para el despliegue. Al desplegar, la aplicación estará disponible en una URL pública.
Recomendaciones adicionales para un proyecto profesional
Para aquellos estudiantes interesados en llevar estos conocimientos a un nivel más profesional, es vital considerar el aprendizaje del backend, aunque sea en sus conceptos básicos. Esta habilidad no solo permite un control más seguro de API Keys, sino también mejora la capacidad de desplegar aplicaciones más complejas y profesionales. Si estás dispuesto a aprender, considera estos consejos:
- Cursos de backend: Aprende los fundamentos en lenguajes como Node.js, Python, o el que prefieras.
- Practica en plataformas multi-lenguaje: Experimenta con Heroku, Vercel y similares que ofrecen soporte para varios lenguajes y configuraciones de backend.
- Proyectos adicionales: Crea más aplicaciones para reforzar el conocimiento adquirido y explorar diferentes técnicas de seguridad y despliegue.
El camino del desarrollo profesional es vasto, pero nunca olvides que cada paso pequeño contribuye a un conocimiento profundo y robusto. Tu seguridad en el despliegue y manejo de las API Keys es crucial, y con cada experiencia, te haces más competente en tu oficio. Así que anima, ¡y sigue aprendiendo!