CORS (Cross-Origin Resource Sharing) es un mecanismo de seguridad del navegador que controla cómo las páginas web de un origen (combinación de dominio, protocolo y puerto) pueden solicitar recursos de un origen diferente. Por defecto, los navegadores aplican la política del mismo origen, que bloquea las solicitudes entre orígenes. CORS proporciona una forma para que los servidores permitan explícitamente solicitudes específicas entre orígenes.
CORS funciona a través de cabeceras HTTP. Cuando un navegador realiza una solicitud entre orígenes, incluye una cabecera Origin. El servidor responde con Access-Control-Allow-Origin y cabeceras relacionadas que especifican qué orígenes están permitidos. Para solicitudes complejas, el navegador primero envía una solicitud preflight OPTIONS para verificar los permisos antes de enviar la solicitud real. Los libros sobre seguridad web en Amazon explican el mecanismo.
Para los servicios de acortamiento de URL, la configuración de CORS es importante para los endpoints de API que crean y gestionan URL cortas. Si la API se llama desde JavaScript ejecutándose en un dominio diferente (lo cual es común para widgets de acortamiento incrustados), el servidor debe incluir las cabeceras CORS apropiadas para permitir la solicitud.
Errores comunes de CORS incluyen usar comodín (*) para Access-Control-Allow-Origin en producción (lo que impide enviar credenciales), no manejar correctamente las solicitudes preflight y exponer cabeceras sensibles innecesariamente. Los libros sobre seguridad de API en Amazon cubren la configuración segura.