Estás construyendo tu app, el navegador te suelta un error rojo de CORS, buscas en un foro y copias la solución que promete que todo funcione. Suele ser la peor posible. Vamos a entender qué es CORS y por qué ese atajo es peligroso.
Qué es CORS en realidad
Por defecto, el navegador no deja que web-a.com lea la respuesta de una API en web-b.com. Es la política del mismo origen, y protege a tus usuarios: evita que una pestaña maliciosa lea datos de otra donde has iniciado sesión. CORS es el mecanismo con el que tu servidor dice a estos orígenes concretos sí les dejo, mediante la cabecera Access-Control-Allow-Origin.
El error que lo rompe todo
El patrón peligroso es reflejar cualquier origen que llega y, encima, permitir credenciales:
Access-Control-Allow-Origincon el valor del origen que pide (reflejo dinámico)- junto a
Access-Control-Allow-Credentials: true
Con esa combinación, cualquier web que visite tu usuario puede hacer peticiones a tu API con las cookies de sesión del usuario y leer la respuesta. Es decir, un sitio cualquiera puede sacar los datos privados de tu usuario sin que este se entere. El comodín * es menos grave porque el navegador prohíbe combinarlo con credenciales, pero tampoco es para dejarlo puesto en producción.
Cómo configurarlo bien
Piensa en defensa, no en comodidad:
- Mantén una lista blanca de orígenes permitidos y compárala de forma exacta. Nunca reflejes lo que llegue sin validar.
- Activa
Allow-Credentialssolo si de verdad necesitas enviar cookies, y solo para orígenes concretos. - Limita métodos y cabeceras a lo que uses (
Allow-Methods,Allow-Headers). - Cuidado con incluir
nullo subdominios de terceros en la lista.
Por qué cuesta detectarlo
Este fallo es silencioso: todo funciona, no hay error visible y la app parece sana. Solo se nota cuando alguien lo aprovecha. Por eso conviene revisar la configuración de CORS de forma explícita en cada despliegue, no fiarte de que como no da error, va bien.
Revisa tu CORS con Scanaris
Scanaris comprueba en modo solo lectura si tu API refleja orígenes y cómo responde a las cabeceras CORS, sin lanzar ataques ni tocar tus datos: solo observa la respuesta pública. Si encuentra una configuración peligrosa, te da un fix prompt para que tu IA la corrija con una lista blanca. Escanea tu web y evita el fallo que nadie ve hasta que es tarde.