Saltar al contenido
Underc0de /foro

¿Qué es CORS (Cross-Origin Resource Sharing)?

$ man cors

CORS es un mecanismo basado en cabeceras HTTP que permite a un servidor indicar qué orígenes externos pueden leer sus respuestas desde el navegador, flexibilizando de forma controlada la política del mismo origen.

Intercambio de recursos de origen cruzadoCross-Origin Resource Sharingpolítica CORS#seguridad-web#desarrollo-web#vulnerabilidades

Definición

CORS es un estándar que relaja la Same-Origin Policy (SOP) del navegador, que por defecto impide que un script de un origen (esquema + dominio + puerto) lea respuestas de otro. El servidor declara qué orígenes están autorizados mediante cabeceras como
Código: text
Access-Control-Allow-Origin
,
Código: text
Access-Control-Allow-Methods
y
Código: text
Access-Control-Allow-Credentials
. Para peticiones «no simples» (por ejemplo con métodos PUT/DELETE o cabeceras personalizadas), el navegador envía antes una solicitud de verificación preflight con el método OPTIONS.

Ejemplo

Un frontend en
Código: text
https://app.ejemplo.com
consulta una API en
Código: text
https://api.ejemplo.com
; para que el navegador entregue la respuesta, la API debe devolver
Código: text
Access-Control-Allow-Origin: https://app.ejemplo.com
. Un error típico de configuración es reflejar cualquier cabecera Origin junto con
Código: text
Access-Control-Allow-Credentials: true
, lo que permitiría a un sitio malicioso leer datos privados del usuario logueado.

Cómo protegerse

  • Usá una lista blanca explícita de orígenes confiables en lugar de reflejar el Origin recibido.
  • No combines comodín
    Código: text
    *
    ni orígenes dinámicos con credenciales (cookies o autenticación).
  • Evitá confiar en el origen
    Código: text
    null
    y validá los dominios de forma exacta, no con coincidencias parciales o expresiones regulares laxas.
  • Limitá métodos y cabeceras permitidos al mínimo necesario.
  • Recordá que CORS no reemplaza la autenticación ni la protección contra CSRF en el servidor.

Para tener en cuenta

CORS no es una defensa del servidor sino una regla que aplica el navegador: herramientas como curl o scripts propios ignoran estas cabeceras. Además, CORS no bloquea el envío de la petición, solo que el script lea la respuesta; desactivarlo «para que funcione» en desarrollo suele terminar en configuraciones inseguras en producción.

Redactado con el asistente Underc0de IA. Actualizado el 11/11/2026. ¿Ves un error o querés sumar algo? Contanos en el foro.

Grupo de WhatsApp