En-tête Sec-Fetch-Site
Baseline
Large disponibilité
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis mars 2023.
Vous voulez une meilleure prise en charge pour cette fonctionnalité ? Dites-nous pourquoi.
L'en-tête de métadonnées de requête de récupération HTTP Sec-Fetch-Site indique la relation entre l'origine de l'initiateur de la requête et l'origine de la ressource demandée.
En d'autres termes, cet en-tête indique à un serveur si une requête pour une ressource provient de la même origine, du même site, d'un site différent ou s'il s'agit d'une requête « initiée par l'utilisateur·ice ». Le serveur peut alors utiliser cette information pour décider si la requête doit être autorisée.
Les requêtes de même origine sont généralement autorisées par défaut, mais ce qui se passe pour les requêtes provenant d'autres origines peut dépendre davantage de la ressource demandée ou des informations contenues dans un autre en-tête de métadonnées de requête de récupération. Par défaut, les requêtes non acceptées doivent être rejetées avec un code de réponse 403.
L'en-tête n'est inclus que dans les requêtes vers des URL potentiellement fiables.
| Type d'en-tête | En-tête de métadonnées de requête de récupération |
|---|---|
| En-tête de requête interdit | Oui (préfixe Sec-) |
| En-tête de requête autorisé par CORS | Non |
Syntaxe
Sec-Fetch-Site: cross-site
Sec-Fetch-Site: same-origin
Sec-Fetch-Site: same-site
Sec-Fetch-Site: none
Directives
cross-site-
L'initiateur de la requête et le serveur hébergeant la ressource appartiennent à des sites différents (c'est-à-dire une requête de « potentially-evil.com » pour une ressource sur « example.com »).
same-origin-
L'initiateur de la requête et le serveur hébergeant la ressource ont la même origine (même schéma, hôte et port).
same-site-
L'initiateur de la requête et le serveur hébergeant la ressource appartiennent au même site, y compris le schéma.
none-
Cette requête est une opération initiée par l'utilisateur·ice. Par exemple : saisir une URL dans la barre d'adresse, ouvrir un favori ou faire glisser un fichier dans la fenêtre du navigateur.
Exemples
Une requête de récupération vers https://monsite.example/toto.json provenant d'une page Web située à l'adresse https://monsite.example (sur le même port) est une requête de même origine.
Le navigateur génère l'en-tête Sec-Fetch-Site: same-origin comme indiqué ci-dessous, et le serveur autorise généralement la requête :
GET /toto.json
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Une requête de récupération vers la même URL depuis un autre site, par exemple potentially-evil.com, entraîne la génération par le navigateur d'un en-tête différent (par exemple, Sec-Fetch-Site: cross-site), que le serveur peut choisir d'accepter ou de rejeter :
GET /toto.json
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
Spécifications
| Spécification |
|---|
| Fetch Metadata Request Headers> # sec-fetch-site-header> |
Compatibilité des navigateurs
Voir aussi
- Les en-têtes de métadonnées de requête de récupération
Sec-Fetch-Mode,Sec-Fetch-User,Sec-Fetch-Dest - Protéger vos ressources contre les attaques web avec les métadonnées de récupération (angl.) (web.dev)
- Terrain d'essai des en-têtes de métadonnées de requête de récupération (angl.) (secmetadata.appspot.com)