¿Qué es CORS? El Guardián de la Seguridad Web Explicado
El guardián de la seguridad web
Si alguna vez vimos desarrollar una web, es probable que hayamos escuchado frustraciones por un "error de CORS". Es un mensaje rojo en la consola del navegador, pero aunque parezca molesto, el mecanismo de CORS (Cross-Origin Resource Sharing) es un guardián fundamental de la seguridad.
Para entenderlo, hay que conocer la Política del Mismo Origen (Same-Origin Policy). Es una regla estricta de los navegadores que dice: un script cargado desde un Origen A no puede leer datos de un Origen B.
(Un "Origen" se define por la combinación exacta del protocolo, el dominio y el puerto. Ej: https://miweb.com es un origen distinto a http://miweb.com o a https://api.miweb.com ).
Si esta regla no existiera, una web maliciosa abierta en una pestaña podría ejecutar código para leer los datos de nuestro banco abierto en otra pestaña.
CORS es un protocolo de seguridad del navegador que impide que un sitio web lea datos privados de otro sitio sin permiso explícito.
El puente controlado
Las aplicaciones modernas necesitan hablar con otros orígenes (por ejemplo, el Frontend pidiendo datos a una API externa). CORS es el mecanismo que permite flexibilizar esta regla de forma segura.
Funciona así: el servidor B debe incluir en su respuesta un encabezado HTTP explícito (como Access-Control-Allow-Origin: https://miweb.com ).
// El servidor le dice al navegador quién puede leer sus datos
Access-Control-Allow-Origin: https://miweb.com
Access-Control-Allow-Methods: GET, POST
Ojo con este detalle: el servidor sí procesa la petición. El error de CORS ocurre cuando el servidor devuelve la respuesta pero sin los encabezados correctos; entonces, el navegador bloquea la lectura y esconde los datos para proteger al usuario.
La verificación previa (Preflight )
Para acciones que pueden modificar datos (como un POST o un DELETE), o peticiones con encabezados personalizados (Tokens de autenticación), el navegador añade un paso extra: la petición Preflight.
Antes de enviar los datos reales, el navegador envía una petición de tipo OPTIONS para preguntar: "¿Tengo permiso para hacer esto?". Si el servidor responde que sí, el navegador avanza. Si no, lo bloquea antes de enviar el payload real.
CORS no es un bug del navegador. Es una característica esencial configurada desde el backend que mantiene la web segura para todos.


