En-tête Sec-Fetch-Dest
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.
* Certaines parties de cette fonctionnalité peuvent bénéficier de prise en charge variables.
L'en-tête de métadonnées de requête de récupération HTTP Sec-Fetch-Dest indique la destination de la requête.
C'est l'initiateur de la requête de récupération originale, c'est-à-dire l'endroit (et la manière) où les données récupérées sont utilisées.
Cela permet aux serveurs de déterminer s'ils doivent traiter une requête en fonction de son adéquation avec l'utilisation prévue. Par exemple, une requête dont la destination est audio doit demander des données audio, et non un autre type de ressource (par exemple, un document contenant des informations sensibles sur l'utilisateur·ice).
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-Dest: audio
Sec-Fetch-Dest: audioworklet
Sec-Fetch-Dest: document
Sec-Fetch-Dest: embed
Sec-Fetch-Dest: empty
Sec-Fetch-Dest: fencedframe
Sec-Fetch-Dest: font
Sec-Fetch-Dest: frame
Sec-Fetch-Dest: iframe
Sec-Fetch-Dest: image
Sec-Fetch-Dest: json
Sec-Fetch-Dest: manifest
Sec-Fetch-Dest: object
Sec-Fetch-Dest: paintworklet
Sec-Fetch-Dest: report
Sec-Fetch-Dest: script
Sec-Fetch-Dest: serviceworker
Sec-Fetch-Dest: sharedworker
Sec-Fetch-Dest: style
Sec-Fetch-Dest: text
Sec-Fetch-Dest: track
Sec-Fetch-Dest: video
Sec-Fetch-Dest: webidentity
Sec-Fetch-Dest: worker
Sec-Fetch-Dest: xslt
Les serveurs doivent ignorer cet en-tête s'il contient une autre valeur.
Directives
Note :
Ces directives correspondent aux valeurs retournées par Request.destination.
audio-
La destination est constituée de données audio. Celles-ci peuvent provenir d'une balise HTML
<audio>. audioworklet-
La destination est constituée de données récupérées pour être utilisées par un audio worklet. Celles-ci peuvent provenir d'un appel à
audioWorklet.addModule(). document-
La destination est un document (HTML ou XML), et la requête est le résultat d'une navigation de premier niveau initiée par l'utilisateur·ice (par exemple, résultant d'un clic de l'utilisateur·ice sur un lien).
embed-
La destination est un contenu intégré. Celui-ci peut provenir d'une balise HTML
<embed>. empty-
La destination est la chaîne de caractères vide. Cela est utilisé pour les destinations qui n'ont pas leur propre valeur. Par exemple :
fetch(),navigator.sendBeacon(),EventSource,XMLHttpRequest,WebSocket, etc. fencedframe-
La destination est un cadre renfoncé.
font-
La destination est une police. Celle-ci peut provenir d'une règle CSS
@font-face. frame-
La destination est un cadre. Celui-ci peut provenir d'une balise HTML
<frame>. iframe-
La destination est un cadre intégré. Celle-ci peut provenir d'une balise HTML
<iframe>. image-
La destination est une image. Celle-ci peut provenir d'une balise HTML
<img>, d'un élément SVG<image>, d'une règle CSSbackground-image, d'une règle CSScursor, d'une règle CSSlist-style-image, etc. json-
La destination est JSON. Celle-ci peut provenir d'un
import with { type: "json" }en JavaScript. manifest-
La destination est un manifeste. Celle-ci peut provenir d'un
<link rel=manifest>. object-
La destination est un objet. Celle-ci peut provenir d'une balise HTML
<object>. paintworklet-
La destination est un mini-travailleur (worklet en anglais) de peinture. Celle-ci peut provenir d'un appel à
CSS.PaintWorklet.addModule(). report-
La destination est un rapport (par exemple, un rapport de politique de sécurité du contenu).
script-
La destination est un script. Celle-ci peut provenir d'une balise HTML
<script>ou d'un appel àWorkerGlobalScope.importScripts(). serviceworker-
La destination est un service de travailleur (service worker en anglais). Celle-ci peut provenir d'un appel à
navigator.serviceWorker.register(). -
La destination est un travailleur partagé (shared worker en anglais). Celle-ci peut provenir d'un
SharedWorker. style-
La destination est un style. Celle-ci peut provenir d'un HTML <link rel=stylesheet>, d'une règle CSS
@import, ou d'unimport with { type: "css" }en JavaScript. text-
La destination est du texte brut. Celle-ci peut provenir d'un
import with { type: "text" }en JavaScript. track-
La destination est une piste de texte HTML. Celle-ci peut provenir d'une balise HTML
<track>. video-
La destination est des données vidéo. Celle-ci peut provenir d'une balise HTML
<video>. webidentity-
La destination est un point de terminaison associé à la vérification de l'identité de l'utilisateur·ice. Par exemple, il est utilisé dans l'API FedCM pour vérifier l'authenticité des points de terminaison des fournisseurs d'identité (IdP), protégeant contre les attaques CSRF.
worker-
La destination est un objet
Worker. xslt-
La destination est une transformation XSLT.
Exemples
>Utiliser Sec-Fetch-Dest
Une requête inter-site générée par une élément HTML <img> ce qui donne une requête comportant les en-têtes HTTP suivants (à noter que la destination est image) :
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site
Spécifications
| Spécification |
|---|
| Fetch Metadata Request Headers> # sec-fetch-dest-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-Site,Sec-Fetch-User - 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)