Cross-Origin Resource Sharing
CORS controla el acceso del navegador a respuestas de otro origen. No sustituye el inicio de sesión ni la comprobación de permisos de la API.
Permitir que otro origen lea respuestas
Cross-Origin Resource Sharing, o CORS, es un mecanismo de cabeceras HTTP. El servidor indica desde qué otros orígenes puede acceder a sus respuestas el código del navegador. Un origen incluye protocolo, host y puerto. El navegador aplica la regla; CORS no es un inicio de sesión en la API.
Distinguir el portal de la API
Un portal ficticio en https://portal.example quiere leer datos de proyectos desde https://api.example/projects. La API puede permitir el origen del portal mediante Access-Control-Allow-Origin. Según el método y las cabeceras, el navegador pregunta primero con OPTIONS si se permite la llamada real. Esta comprobación previa se llama preflight; no ocurre en todas las llamadas.
En otras llamadas, la solicitud puede llegar al servidor aunque el navegador después no permita al script leer la respuesta. Por tanto, un error CORS no demuestra que no haya ocurrido nada en el servidor.
Si se van a enviar cookies de sesión, también deben concordar los ajustes de credenciales. Estas respuestas requieren un origen explícito en lugar del comodín *; también interviene Access-Control-Allow-Credentials. Las reglas de cookies del navegador siguen vigentes. De forma independiente, la API comprueba identidad y permisos sobre los datos solicitados.
Fuentes
Términos relacionados
- Política del mismo origen (SOP)La política del mismo origen limita el acceso del navegador entre orígenes distintos. Cambiar solo la ruta no crea un origen nuevo.
- Falsificación de solicitudes entre sitios (CSRF)CSRF aprovecha una sesión iniciada para una solicitud no deseada. La cookie de sesión no demuestra por sí sola que la persona quisiera realizar la acción.
- Cookie SameSiteSameSite influye en el envío de cookies entre sitios. La elección debe encajar con el acceso y la navegación; sigue siendo necesaria la protección CSRF.
- Server-Sent EventsServer-Sent Events transmite avisos de texto del servidor al cliente por HTTP, por ejemplo sobre el avance de un trabajo en segundo plano.
- ETagUn ETag identifica una versión concreta de la representación de un recurso HTTP y permite lecturas o cambios condicionales.
- Intercambio electrónico de datosEDI transmite documentos de negocio estructurados entre sistemas. Deben concordar el formato, el perfil del socio, las correspondencias de datos y las respuestas.
Su proyecto con ASES
Descríbanos su proyecto. Le responderemos con una primera valoración.