Nivel Principiante
Imagina que una página web es como una casa y quiere pedir un pastel de una panadería que está en otra calle (otro sitio web). El dueño de la casa (la página web) llama a la panadería, pero la panadería, por seguridad, no le da el pastel si no le han dado permiso. CORS es como ese permiso especial que la panadería (el servidor) le da a la casa (la página web) para que pueda pedir su pastel. Es una regla de seguridad que permite a las páginas web compartir información entre sí de forma segura.
Nivel Intermedio
CORS (Cross-Origin Resource Sharing), o Intercambio de Recursos de Origen Cruzado, es un mecanismo de seguridad implementado en los navegadores web para permitir o denegar que una página web acceda a recursos (como datos, imágenes o scripts) de un dominio diferente al que la sirve. Por defecto, los navegadores imponen una política de seguridad del mismo origen (Same-Origin Policy) para evitar ataques maliciosos, lo que significa que el código de un sitio web (sitio-a.com) no puede interactuar con los recursos de otro (sitio-b.com). CORS es una forma segura de relajar esta política.
Funciona a través de un sistema de encabezados HTTP que el servidor de origen cruzado debe configurar para indicarle al navegador que es seguro permitir el acceso a los recursos.
Nivel Avanzado
Técnicamente, CORS es un estándar del W3C que define un conjunto de encabezados HTTP. El mecanismo opera en dos tipos de solicitudes principales:
- Solicitudes Simples: Son peticiones
GET,POSToHEADque cumplen con ciertos requisitos (como no tener encabezados personalizados). En este caso, el navegador envía la solicitud directamente, y el servidor debe responder con el encabezadoAccess-Control-Allow-Origin, indicando al navegador qué orígenes tienen permiso para acceder a sus recursos. Si el origen de la petición no coincide con el valor del encabezado, el navegador bloquea la respuesta. - Solicitudes Pre-vuelo (Preflight Requests): Para peticiones más complejas (como
PUT,DELETEo aquellas con encabezados personalizados), el navegador realiza una primera peticiónOPTIONSal servidor antes de enviar la solicitud real. Esta petición «pre-vuelo» pregunta al servidor si el método y los encabezados de la solicitud principal están permitidos. Si el servidor responde con los encabezados CORS adecuados, el navegador envía la solicitud original.
El uso de CORS es fundamental en la arquitectura de aplicaciones web modernas, como los CMS «headless» o las aplicaciones de una sola página (SPA) que consumen datos de una API alojada en un dominio diferente. La correcta configuración de los encabezados CORS es crucial para la seguridad y la funcionalidad de la aplicación. Una mala configuración puede llevar a errores de seguridad o a que la aplicación simplemente no funcione, por lo que es una consideración clave en la configuración del servidor web.
« Volver al índice del glosario