Nuevos labs cada semana — Accede a todos desde 5€/mes

CORS

Informativo

Cross-Origin Resource Sharing

Definición

Cross-Origin Resource Sharing (CORS) es un mecanismo basado en cabeceras HTTP que permite a un servidor indicar desde qué orígenes (dominio, protocolo, puerto) un navegador puede cargar recursos. CORS relaja la Same-Origin Policy de forma controlada, permitiendo a las APIs ser consumidas por front-ends en dominios diferentes de manera segura.

Impacto

Permite que APIs sean consumidas por frontends en otros dominiosUna mala configuración puede exponer datos privados a sitios maliciososLas peticiones preflight (OPTIONS) validan permisos antes de enviar la petición realFundamental para arquitecturas modernas con frontend y backend separados

Ejemplos

Cabeceras CORS y flujo de preflight

Cuando el navegador detecta una petición cross-origin con ciertos criterios (headers personalizados, métodos no simples), envía primero una petición OPTIONS (preflight). El servidor responde indicando qué orígenes, métodos y cabeceras están permitidos.

# Petición preflight automática del navegador
OPTIONS /api/data HTTP/1.1
Host: api.ejemplo.com
Origin: https://app.ejemplo.com
Access-Control-Request-Method: POST
Access-Control-Request-Headers: Content-Type, Authorization

# Respuesta del servidor (configuración segura)
HTTP/1.1 204 No Content
Access-Control-Allow-Origin: https://app.ejemplo.com
Access-Control-Allow-Methods: GET, POST
Access-Control-Allow-Headers: Content-Type, Authorization
Access-Control-Allow-Credentials: true
Access-Control-Max-Age: 86400

Referencias externas

Practica CORS con labs reales

Aplica lo que has aprendido en entornos seguros basados en reportes de bug bounty.

Ver labs de práctica