CORS
CORS (Cross-Origin Resource Sharing) es un mecanismo de seguridad del navegador que usa cabeceras HTTP para controlar si una página puede acceder a recursos de otro origen, evitando lecturas cross-site.
Propósito
Relaja la política del mismo origen para permitir llamadas legítimas a APIs cross-origin, sin que sitios maliciosos puedan leer respuestas cross-origin.
Mecanismo
El navegador añade una cabecera Origin a las peticiones cross-origin. Las peticiones simples se envían directamente; las preflighted pasan por una comprobación OPTIONS de los métodos y cabeceras que el servidor permite. El servidor autoriza el acceso devolviendo cabeceras como Access-Control-Allow-Origin. Las peticiones con credenciales requieren además Allow-Credentials.
Casos de uso
- Llamadas a APIs cross-origin
- Fuentes e imágenes de CDN
- Agregación frontend entre microservicios
- Integración de SDKs de terceros
Ejemplos
- entrada
Origin: https://a.com → https://b.comOutputb.com returns the ACAO header to authorizePreflight followed by the actual request
Errores comunes
- The browser blocks the response when the server returns no CORS headers
- Configure the Access-Control-Allow-* headers