--- title: "CORS : Cross-origin Resource Sharing (header)" date: 2017-08-16T13:31:25+01:00 description: "Explication sur l'entête HTTP nommée CORS : Cross-Origin Resource Sharing" draft: false lastmod: 2020-05-17T04:44:25+01:00 tags: ["HTTP", "Header", "CORS"] --- ## Définition **CORS** est une entête HTTP qui contrôle quels sites, externes ou non, peuvent accéder au contenu de votre site web, par le biais de scripts, tel que le propose XMLHttpRequest. C'est une technique très facile à mettre en place et dont le bénéfice est vraiment important ! L'usage du symbole `*` accepte que n'importe quel site puisse se connecter ; sinon, remplissez une URL ! Elle fait partie des entêtes de base à générer pour protéger son site web, au même titre que l'usage de {{< inside "web:ssl:hsts" HSTS >}}, et des autres entêtes, telles que {{< inside "web:http:x-content-type-options" "X-Content-Type-Options" >}}, {{< inside "web:http:x-frame-options" "X-Frame-Options" >}}, ou {{< inside "web:http:x-xss-protections" X-XSS-Protections >}},… ## Exemples `Access-Control-Allow-Origin: *` ### nginx `add_header Access-Control-Allow-Origin "huc.fr.eu.org" always;` ### relayd Et, oui, malheureusement, {{< tag httpd >}} ne peut pas gérer les entêtes, ce sera son binôme {{< man relayd 8 >}} que l'on utilisera ! `match response header set "Access-Control-Allow-Origin" value "huc.fr.eu.org"` ## Documentations * https://developer.mozilla.org/fr/docs/Web/HTTP/CORS * [Access-Control-Allow-Credentials][1] * [Access-Control-Allow-Headers][2] * [Access-Control-Allow-Methods][3] * [Access-Control-Allow-Origin][4] * [Access-Control-Expose-Headers][5] * [Access-Control-Max-Age][6] * Support actuel de l'entête : [http://caniuse.com/#search=cors](http://caniuse.com/#search=cors) --- [1]: https://developer.mozilla.org/fr/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials [2]: https://developer.mozilla.org/fr/docs/Web/HTTP/Headers/Access-Control-Allow-Headers [3]: https://developer.mozilla.org/fr/docs/Web/HTTP/Headers/Access-Control-Allow-Methods [4]: https://developer.mozilla.org/fr/docs/Web/HTTP/Headers/Access-Control-Allow-Origin [5]: https://developer.mozilla.org/fr/docs/Web/HTTP/Headers/Access-Control-Expose-Headers [6]: https://developer.mozilla.org/fr/docs/Web/HTTP/Headers/Access-Control-Max-Age ---