blob: 701cd7bedde5c9244d5c3bf123e2c8e042fe5f79 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
---
title: CORS
slug: Glossaire/CORS
tags:
- CORS
- Glossaire
- Infrastructure
- Sécurité
translation_of: Glossary/CORS
---
<p>CORS (Partage de ressource cross-origin) est un mécanisme qui consiste à transmettre des <a href="/fr/docs/HTTP/Headers">entêtes HTTP</a> qui déterminent s'il faut ou non bloquer les requêtes à des ressources restreintes sur une page web qui se trouve sur un domaine externe au domaine dont la ressource est originaire.</p>
<p>La <a href="https://developer.mozilla.org/fr/docs/Web/JavaScript/Same_origin_policy_for_JavaScript">politique de sécurité de même origine</a> interdit les requêtes d'origines différentes par défaut et ce pour des raisons de sécurité.<br>
CORS permet de contourner cette limitation en permettant au serveur d'avoir le contrôle sur les ressources partagés et offre un mécanisme sécurisé pour permettre l'échange de données qui ne partagent pas le même domaine d'origine (d'où le terme "<em>cross-origin</em>").</p>
<h2 id="Pour_approfondir">Pour approfondir</h2>
<h3 id="Culture_générale">Culture générale</h3>
<ul>
<li><a href="https://developer.mozilla.org/fr/docs/HTTP/Access_control_CORS">Contrôle d'accès HTTP (CORS)</a> sur MDN</li>
<li><a href="https://en.wikipedia.org/wiki/Cross-origin_resource_sharing">Cross-origin resource sharing</a> sur Wikipédia (anglais)</li>
</ul>
<h3 id="En-têtes_liés_au_CORS">En-têtes liés au CORS</h3>
<dl>
<dt>{{HTTPHeader("Access-Control-Allow-Origin")}}</dt>
<dd>Indique le ou les domaines pour lesquels la ressource peut être partagée.</dd>
<dt>{{HTTPHeader("Access-Control-Allow-Credentials")}}</dt>
<dd>Indique si la réponse peut ou non être exposée si le flag est à "<em>true</em>".</dd>
<dt>{{HTTPHeader("Access-Control-Allow-Headers")}}</dt>
<dd>Utilisé en réponse à une requête de pré-vérification pour indiquer quels sont les en-têtes qui peuvent être utilisés dans la requête courante.</dd>
<dt>{{HTTPHeader("Access-Control-Allow-Methods")}}</dt>
<dd>Utilisé en réponse à une requête de pré-vérification pour indiquer quels sont les méthodes allouées pour accéder à une ressource.</dd>
<dt>{{HTTPHeader("Access-Control-Expose-Headers")}}</dt>
<dd><span id="result_box" lang="fr"><span>Indique quels en-têtes peuvent être exposés dans le cadre de la réponse en énumérant leurs noms.</span></span></dd>
<dt>{{HTTPHeader("Access-Control-Max-Age")}}</dt>
<dd>Indique combien de temps le résultat d'une pré-vérification peut être gardé en cache par le demandeur de la pré-vérification.</dd>
<dt>{{HTTPHeader("Access-Control-Request-Headers")}}</dt>
<dd><span id="result_box" lang="fr"><span>Utilisé lors de l'émission d'une demande de contrôle en amont, pour indiquer au serveur quels en-têtes HTTP seront utilisés lors de la demande.</span></span></dd>
<dt>{{HTTPHeader("Access-Control-Request-Method")}}</dt>
<dd><span id="result_box" lang="fr"><span>Utilisé lors de l'émission d'une demande de contrôle en amont permettant au serveur de savoir quelle méthode HTTP sera utilisée lors de la création de la requête.</span></span></dd>
<dt>{{HTTPHeader("Origin")}}</dt>
<dd><span class="short_text" id="result_box" lang="fr"><span>Indique quelle est l'origine d'une récupération.</span></span></dd>
</dl>
<h3 id="Référence_technique">Référence technique</h3>
<ul>
<li><a href="https://fetch.spec.whatwg.org/#http-cors-protocol" lang="en_US">Spécification fetch</a></li>
</ul>
|