CORS
CORS (Cross-Origin Resource Sharing) est un mécanisme de sécurité du navigateur qui utilise des en-têtes HTTP pour contrôler si une page peut accéder à des ressources d'une autre origine, empêchant les lectures intersites.
Objectif
Assouplit la politique de même origine pour autoriser les appels d'API cross-origin légitimes, tout en empêchant les sites malveillants de lire les réponses cross-origin.
Mécanisme
Le navigateur ajoute un en-tête Origin aux requêtes cross-origin. Les requêtes simples sont envoyées directement ; celles avec preflight passent par une vérification OPTIONS des méthodes et en-têtes autorisés par le serveur. Le serveur autorise l'accès en renvoyant des en-têtes comme Access-Control-Allow-Origin. Les requêtes avec identifiants exigent en plus Allow-Credentials.
Cas d’usage
- Appels d'API cross-origin
- Polices et images de CDN
- Agrégation frontend entre microservices
- Intégration de SDK tiers
Exemples
- entrée
Origin: https://a.com → https://b.comOutputb.com returns the ACAO header to authorizePreflight followed by the actual request
Erreurs courantes
- The browser blocks the response when the server returns no CORS headers
- Configure the Access-Control-Allow-* headers