Skip to content
NeuralSkills
Seguridad

Configurador CORS

Configura politicas CORS correctamente — entiende origenes, metodos, headers y credenciales para asegurar tu API sin romper peticiones legitimas.

Principiante Gratis Publicado: 15 de abril de 2026
Herramientas Compatibles claude-codechatgptgeminicopilotcursorwindsurfuniversal

El Problema

La configuracion CORS es donde la seguridad se encuentra con la frustracion del desarrollador. Configura demasiado suelto con Access-Control-Allow-Origin: * e invitas al robo de datos cross-site. Configura demasiado estricto y tu propio frontend no puede alcanzar la API. Los desarrolladores frecuentemente recurren a “permitir todo” para arreglar errores CORS durante desarrollo y olvidan restringirlo para produccion. El mecanismo de preflight, manejo de credenciales y reglas de exposicion de headers agregan capas de complejidad que llevan a configuraciones erroneas.

El Prompt

Eres un ingeniero de seguridad web especializado en configuracion CORS. Revisa mi setup de CORS y corrige problemas de seguridad o configuraciones erroneas.

ARQUITECTURA:
- Origen(es) frontend: [ej. https://app.example.com, http://localhost:3000]
- Origen API: [ej. https://api.example.com]
- Metodo de auth: [ej. cookies, JWT en header Authorization, API key]
- Framework: [ej. Express/cors, FastAPI, Django, Next.js, nginx]

CONFIG CORS ACTUAL:
[pega tu config de middleware CORS, headers nginx o configuracion del servidor]

Evaluar:
1. **Whitelist de origenes**: Es especifica o peligrosamente amplia (wildcard)?
2. **Credenciales**: Se usa Access-Control-Allow-Credentials correctamente con origenes especificos?
3. **Metodos**: Solo se permiten los metodos HTTP necesarios?
4. **Headers**: Los headers expuestos/permitidos estan minimizados?
5. **Cache de preflight**: Esta Access-Control-Max-Age configurado para reducir requests OPTIONS?
6. **Header Vary**: Esta Vary: Origin configurado para compatibilidad con cache?

Proporcionar:
- Evaluacion de seguridad de la config actual (segura/riesgosa/peligrosa)
- Configuracion corregida para mi framework especifico
- Estrategia CORS para dev vs. produccion
- Errores CORS comunes y sus soluciones reales (no solo "permitir todo")

Ejemplo de Salida

## Evaluacion CORS: PELIGROSA

### Hallazgo: Origen wildcard con credenciales
`Access-Control-Allow-Origin: *` combinado con `Access-Control-Allow-Credentials: true`
Riesgo: Cualquier sitio web puede hacer peticiones autenticadas a tu API.
Solucion (Express):
app.use(cors({
  origin: ['https://app.example.com'],
  credentials: true,
  methods: ['GET', 'POST', 'PUT', 'DELETE'],
  allowedHeaders: ['Content-Type', 'Authorization'],
  maxAge: 86400
}));

Cuando Usar

Configurar CORS durante el setup inicial de la API y revisarlo al agregar nuevos clientes frontend, al pasar a produccion o despues de quejas de “error CORS” de los desarrolladores. Esencial cuando tu API sirve a multiples dominios frontend o al transicionar de arquitectura same-origin a cross-origin.

Tips Pro

  • Nunca wildcard con credencialesAccess-Control-Allow-Origin: * y credentials: true juntos es una violacion de seguridad a nivel de navegador. Usa origenes especificos.
  • Separa configs de dev y prod — permite origenes localhost solo en desarrollo, nunca en politicas CORS de produccion.
  • Cachea peticiones preflight — configura Access-Control-Max-Age: 86400 para evitar requests OPTIONS redundantes que ralentizan tu API.
  • Usa Vary: Origin — si tu servidor responde con diferentes headers CORS por origen, el header Vary previene problemas de cache en CDN.