CORS (Cross-Origin Resource Sharing) est une spécification de sécurité web qui permet le partage de ressources (comme du contenu HTML, des feuilles de style CSS, des scripts JavaScript, etc.) entre des domaines différents.
Dans un contexte web classique, pour des raisons de sécurité, un navigateur web empêche une page web d’un domaine de faire des requêtes vers un autre domaine. C’est ce qui est appelé la politique de même origine (Same-Origin Policy).
CORS fournit un moyen pour les serveurs de contourner cette politique en autorisant explicitement certains domaines à accéder à leurs ressources. Elle spécifie des exceptions aux règles d’accès à des ressources externes pour les navigateurs.
Pour transmettre des données depuis différentes origines notamment des APIs, le développeur peut contourner les limitations du same-origin pour JavaScript, sur le serveur pour autoriser le domaine depuis lequel accéder aux données ou au niveau de la requête fetch().
CORS fonctionne en ajoutant de nouveaux en-têtes HTTP qui permettent aux serveurs d’indiquer les domaines autorisés à accéder à leurs ressources. Les navigateurs vérifient ces en-têtes avant d’autoriser une requête cross-origin.
CORS aide à prévenir les attaques de type Cross-Site Request Forgery (CSRF) et Cross-Site Script Inclusion (XSSI) en empêchant les sites malveillants d’effectuer des requêtes non autorisées vers d’autres domaines.
Synonyme : politique CORS
Extension : Moesif Origin & CORS Changer
Voir aussi : sécurité Cross Domains, requêtes AJAX, WebSockets