Configuración CORS en API Gateway

Clase 30 de 30Curso de Ciberseguridad para Desarrollo Web

Resumen

Domina CORS en navegadores y refuerza tu seguridad en AWS con configuraciones claras en API Gateway y Auth0. Aquí entenderás cómo el navegador decide compartir recursos entre dominios y qué prácticas aplicaste: desde two factor authentication hasta mitigar SQL injection y proteger datos at rest e in transit.

¿Qué es CORS y cómo afecta a tu frontend?

CORS significa intercambio de recursos de origen cruzado. Es el mecanismo del navegador que permite o bloquea solicitudes entre dominios distintos cuando así se ha configurado. Si desarrollas frontend, es probable que hayas visto el error de CORS al intentar consumir un API desde otro origen.

  • Un servidor responde con el header *Access-Control-Allow-Origin* indicando orígenes permitidos.
  • La petición envía el header *origin* con su dominio.
  • Si el origin no está en Access-Control-Allow-Origin, el navegador bloquea la respuesta y aparece el error de CORS.

¿Qué es el header Access-Control-Allow-Origin?

Es la lista de orígenes que el servidor acepta para compartir recursos. Funciona como una política declarativa: solo los orígenes explícitamente permitidos podrán hacer requests válidas.

¿Qué valida el header origin en una petición?

Indica desde qué dominio se hace la solicitud real. El navegador compara ese valor con Access-Control-Allow-Origin y, si no coincide, rechaza el intercambio de recursos.

¿Cómo configurar CORS en API Gateway y Auth0 sin complicaciones?

Habilitar CORS es sencillo cuando controlas tu API y autenticación. Desde API Gateway puedes usar el menú de CORS para declarar orígenes admitidos. Y en Auth0 existe un panel para añadir los orígenes que tendrán acceso.

  • En API Gateway: configura CORS en el menú dedicado y publica cambios.
  • En Auth0: agrega los dominios permitidos en el panel correspondiente.
  • Verifica que el frontend haga requests con el origin correcto.
  • Prueba con el navegador para asegurar que no aparece el error de CORS.

¿Dónde habilitar orígenes permitidos en Auth0?

En el panel de configuración de Auth0, agrega explícitamente los orígenes confiables. Eso alinea la seguridad del proveedor de autenticación con tu API y tu frontend.

¿Qué habilidades de seguridad aplicaste en AWS y el proyecto?

A lo largo del desarrollo integraste prácticas clave para reducir riesgos y operar con confianza, tanto en el backend como en el frontend que corre en navegadores.

  • Protección de cuenta en AWS: uso de two factor authentication.
  • Automatización: creación de la primera pipeline con GitHub Actions.
  • Arquitectura segura: diseño con separación de componentes.
  • Base de datos en VPC: despliegue dentro de una VPC y acceso controlado por IP y recursos autorizados.
  • Mitigación de SQL injection: validaciones y prácticas para reducir este riesgo.
  • Autorización robusta: creación de un authorizer para validar tokens de acceso con Auth0.
  • Cifrado de datos: cuidado de la información at rest e in transit.
  • Interoperabilidad segura: comprensión de CORS para el desarrollo web en navegadores.

Si ya aplicaste estas técnicas, estás listo para el examen o para entregar el proyecto y obtener tu certificado. Compártelo en redes y etiqueta a @ladeveloper. Me encantará ver tu progreso. ¿Tienes dudas o quieres aportar tu experiencia? Déjalo en los comentarios y continuemos la conversación.