Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. HTTP
  3. Référence
  4. En-têtes
  5. Permissions-Policy

Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in EnglishAlways switch to English

En-tête Permissions-Policy

Limited availability

Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.

Expérimental:Il s'agit d'unetechnologie expérimentale.
Vérifiez attentivement letableau de compatibilité des navigateurs avant de l'utiliser en production.

L'en-tête de réponse HTTPPermissions-Policy fournit un mécanisme pour autoriser ou refuser l'utilisation de fonctionnalités du navigateur dans un document ou dans tout élément HTML<iframe> du document.

Pour plus d'informations, consultez l'article principalPolitique d'autorisations.

Type d'en-têteEn-tête de réponse

Syntaxe

http
Permissions-Policy: <directive>=<allowlist>
<directive>

La directive de la politique d'autorisations à laquelle appliquer la liste d'autorisationsallowlist. VoirDirectives ci-dessous pour la liste des noms de directives autorisés.

<allowlist>

Une liste d'autorisations est une liste d'origines qui prend une ou plusieurs des valeurs suivantes, contenues entre parenthèses et séparées par des espaces :

* (joker)

La fonctionnalité sera autorisée dans ce document, ainsi que dans tous les contextes de navigation imbriqués (<iframe>) quelle que soit leur origine.

() (liste d'autorisations vide)

La fonctionnalité est désactivée dans les contextes de navigation principaux et imbriqués. L'équivalent pour l'attributallow d'un<iframe> est'none'.

self

La fonctionnalité sera autorisée dans ce document, ainsi que dans tous les contextes de navigation imbriqués (<iframe>) de même origine uniquement. La fonctionnalité n'est pas autorisée dans les documents d'origine croisée dans les contextes imbriqués.self peut être considéré comme un raccourci pourhttps://votre-site.exemple.com. L'équivalent pour l'attributallow d'un<iframe> estself.

src

La fonctionnalité sera autorisée dans ce<iframe>, tant que le document chargé provient de la même origine que l'URL de son attributsrc. Cette valeur n'est utilisée que dans l'attributallow d'un<iframe>, et est la valeurpar défaut deallowlist dans les<iframe>.

"<origin>"

La fonctionnalité est autorisée pour des origines spécifiques (par exemple,"https://a.exemple.com"). Les origines doivent être séparées par des espaces. Notez que les origines dans les attributsallow de<iframe> ne sont pas entre guillemets.

Les valeurs* et() ne peuvent être utilisées qu'isolément, tandis queself etsrc peuvent être utilisées en combinaison avec une ou plusieurs origines.

Note :Les directives ont une liste d'autorisations par défaut, qui est toujours l'une de*,self ounone pour l'en-tête HTTPPermissions-Policy, et détermine le comportement par défaut si elles ne sont pas explicitement listées dans une politique.Celles-ci sont précisées sur les différentespages de référence des directives. Pour les attributsallow de<iframe>, le comportement par défaut est toujourssrc.

Lorsque cela est pris en charge, vous pouvez inclure des jokers dans les origines de la politique d'autorisations. Cela signifie qu'au lieu de devoir définir explicitement plusieurs sous-domaines différents dans une liste d'autorisations, vous pouvez tous les définir en une seule origine avec un joker.

Ainsi, au lieu de

http
("https://exemple.com" "https://a.exemple.com" "https://b.exemple.com" "https://c.exemple.com")

Vous pouvez définir

http
("https://exemple.com" "https://*.exemple.com")

Note :"https://*.exemple.com" ne correspond pas à"https://exemple.com".

Directives

accelerometerExpérimental

Contrôle si le document courant est autorisé à recueillir des informations à propos de l'accélération de l'appareil au moyen de l'interfaceAccelerometer.

ambient-light-sensorExpérimental

Contrôle si le document courant est autorisé à recueillir des informations à propos de la luminosité ambiante de l'appareil au moyen de l'interfaceAmbientLightSensor.

aria-notifyExpérimentalNon standard

Contrôle si le document courant est autorisé à utiliser la méthodeariaNotify() pour déclencher des annonces pourlecteur d'écran.

attribution-reportingObsolète

Contrôle si le document courant est autorisé à utiliserl'API Attribution Reporting.

autoplayExpérimental

Contrôle si le document courant est autorisé à lire automatiquement des médias demandés via l'interfaceHTMLMediaElement. Lorsque cette politique est désactivée et qu'il n'y a pas eu de geste de la part de l'utilisateur·ice, laPromise retournée parHTMLMediaElement.play() sera rejetée avec une erreurNotAllowedErrorDOMException. L'attribut autoplay sur les éléments HTML<audio> et<video> sera ignoré.

bluetoothExpérimental

Contrôle si l'utilisation del'API Web Bluetooth est autorisée. Lorsque cette politique est désactivée, les méthodes de l'objetBluetooth retourné parNavigator.bluetooth retourneront soitfalse, soit rejeteront laPromise retournée avec une erreurSecurityErrorDOMException.

browsing-topicsObsolèteNon standard

Contrôle l'accès àl'API Topics. Lorsqu'une politique interdit explicitement l'utilisation de l'API Topics, toute tentative d'appel à la méthodeDocument.browsingTopics() ou d'envoi d'une requête avec un en-têteSec-Browsing-Topics échouera avec une erreurNotAllowedErrorDOMException.

cameraExpérimental

Contrôle si le document courant est autorisé à utiliser des dispositifs d'entrée vidéo.LaPromise retournée pargetUserMedia() sera rejetée avec une erreurNotAllowedErrorDOMException si l'autorisation n'est pas accordée.

captured-surface-controlExpérimental

Contrôle si le document est autorisé à utiliserl'API Captured Surface Control.La promesse retournée par les principales méthodes de l'API sera rejetée avec une erreurNotAllowedErrorDOMException si l'autorisation n'est pas accordée.

ch-ua-high-entropy-valuesExpérimental

Contrôle si le document est autorisé à utiliser la méthodeNavigatorUAData.getHighEntropyValues() pour récupérer des données de user-agent à haute entropie.Si l'autorisation n'est pas accordée, la méthode ne retourne que les données à faible entropiebrands,mobile etplatform.

compute-pressureExpérimental

Contrôle l'accès àl'API Compute Pressure.

cross-origin-isolatedExpérimental

Contrôle si le document courant peut être traité commeisolé d'origine croisée.

deferred-fetchExpérimental

Contrôle l'allocation du quotafetchLater() de l'origine principale.

deferred-fetch-minimalExpérimental

Contrôle l'allocation du quota partagéfetchLater() pour les sous-cadres inter-origines.

display-captureExpérimental

Contrôle si le document courant est autorisé à utiliser la méthodegetDisplayMedia() pour capturer le contenu de l'écran. Lorsque cette politique est désactivée, la promesse retournée pargetDisplayMedia() sera rejetée avec une erreurNotAllowedErrorDOMException si l'autorisation de capturer l'écran n'est pas obtenue.

encrypted-mediaExpérimental

Contrôle si le document courant est autorisé à utiliserl'API Encrypted Media Extensions (EME). Lorsque cette politique est désactivée, laPromise retournée parNavigator.requestMediaKeySystemAccess() sera rejetée avec une erreurSecurityErrorDOMException.

fullscreenExpérimental

Contrôle si le document courant est autorisé à utiliserElement.requestFullscreen(). Lorsque cette politique est désactivée, laPromise retournée est rejetée avec uneTypeError.

gamepadExpérimental

Contrôle si le document courant est autorisé à utiliserl'API Gamepad.Lorsque cette politique est désactivée, les appels àNavigator.getGamepads() lèveront uneSecurityErrorDOMException, et les évènementsgamepadconnected etgamepaddisconnected ne seront pas déclenchés.

geolocationExpérimental

Contrôle si le document courant est autorisé à utiliser l'interfaceGeolocation. Lorsque cette politique est désactivée, les appels àgetCurrentPosition() etwatchPosition() provoqueront l'invocation des callbacks avec un code d'erreurGeolocationPositionErrorPERMISSION_DENIED.

gyroscopeExpérimental

Contrôle si le document courant est autorisé à recueillir des informations sur l'orientation de l'appareil via l'interfaceGyroscope.

hidExpérimental

Contrôle si le document courant est autorisé à utiliserl'API WebHID pour se connecter à des périphériques d'interface humaine peu courants ou exotiques, comme des claviers alternatifs ou des manettes.

identity-credentials-getExpérimental

Contrôle si le document courant est autorisé à utiliserl'API Federated Credential Management (FedCM).

idle-detectionExpérimental

Contrôle si le document courant est autorisé à utiliserl'API Idle Detection pour détecter les interactions des utilisatrices et utilisateurs avec leurs appareils, par exemple pour indiquer l'état « disponible »/« absent » dans des applications de chat.

language-detectorExpérimental

Contrôle l'accès à la fonctionnalité de détection de langue del'API Translator and Language Detector.

local-fontsExpérimental

Contrôle si le document courant est autorisé à collecter des informations sur les polices installées localement via la méthodeWindow.queryLocalFonts() (voir aussil'API Local Font Access).

magnetometerExpérimental

Contrôle si le document courant est autorisé à recueillir des informations sur l'orientation de l'appareil via l'interfaceMagnetometer.

microphoneExpérimental

Contrôle si le document courant est autorisé à utiliser des dispositifs d'entrée audio. Lorsque cette politique est désactivée, laPromise retournée parMediaDevices.getUserMedia() sera rejetée avec une erreurNotAllowedErrorDOMException.

midiExpérimental

Contrôle si le document courant est autorisé à utiliserl'API Web MIDI. Lorsque cette politique est désactivée, la promesse (Promise) retournée parNavigator.requestMIDIAccess() sera rejetée avec une erreurSecurityErrorDOMException.

on-device-speech-recognitionExpérimental

Contrôle l'accès à la fonctionnalité dereconnaissance vocale locale del'API Web Speech.

otp-credentialsExpérimental

Contrôle si le document courant est autorisé à utiliserl'API WebOTP pour demander un mot de passe à usage unique (OTP) depuis un SMS au format spécial envoyé par le serveur de l'application, vianavigator.credentials.get({otp: ..., ...}).

paymentExpérimental

Contrôle si le document courant est autorisé à utiliserl'API Payment Request. Lorsque cette politique est désactivée, le constructeurPaymentRequest() retournera uneSecurityErrorDOMException.

picture-in-pictureExpérimental

Contrôle si le document courant est autorisé à lire une vidéo en mode Image dans l'image via l'API correspondante.

private-state-token-issuanceExpérimental

Contrôle l'utilisation des opérations de demande de jeton (token-request) del'API Private State Token.

private-state-token-redemptionExpérimental

Contrôle l'utilisation des opérationstoken-redemption etsend-redemption-record del'API Private State Token.

publickey-credentials-createExpérimental

Contrôle si le document courant est autorisé à utiliserl'API Web Authentication pour créer de nouvelles informations d'identification asymétriques, par exemple vianavigator.credentials.create({publicKey: ..., ...}).

publickey-credentials-getExpérimental

Contrôle si le document courant est autorisé à utiliserl'API Web Authentication pour récupérer des informations d'identification par clé publique déjà stockées, par exemple vianavigator.credentials.get({publicKey: ..., ...}).

screen-wake-lockExpérimental

Contrôle si le document courant est autorisé à utiliserl'API Screen Wake Lock pour indiquer que l'appareil ne doit pas s'éteindre ou diminuer la luminosité de l'écran.

serialExpérimental

Contrôle si le document courant est autorisé à utiliserl'API Web Serial pour communiquer avec des dispositifs série, soit connectés directement via un port série, soit via des dispositifs USB ou Bluetooth émulant un port série.

speaker-selectionExpérimental

Contrôle si le document courant est autorisé à utiliserl'API Audio Output Devices pour lister et sélectionner des haut-parleurs.

storage-accessExpérimental

Contrôle si un document chargé dans un contexte tiers (c.-à-d. intégré dans un<iframe>) est autorisé à utiliserl'API Storage Access pour demander l'accès aux cookies non partitionnés.

translatorExpérimental

Contrôle l'accès à la fonctionnalité de traductiondes API Translator and Language Detector.

summarizerExpérimental

Contrôle l'accès àl'API Summarizer.

usbExpérimental

Contrôle si le document courant est autorisé à utiliserl'API WebUSB.

web-shareExpérimental

Contrôle si le document courant est autorisé à utiliserNavigator.share() del'API Web Share pour partager du texte, des liens, des images et d'autres contenus vers des destinations arbitraires choisies par l'utilisateur·ice (par exemple, des applications mobiles).

window-managementExpérimental

Contrôle si le document courant est autorisé à utiliserl'API Window Management pour gérer des fenêtres sur plusieurs écrans.

xr-spatial-trackingExpérimental

Contrôle si le document courant est autorisé à utiliserl'API WebXR Device pour interagir avec une session WebXR.

Exemples

Utilisation simple

En-têtePermissions-Policy

Pour autoriser tous les domaines à accéder à la géolocalisation :

http
Permissions-Policy: geolocation=*

Pour autoriser l'accès à une partie des domaines :

http
Permissions-Policy: geolocation=(self "https://a.exemple.com" "https://b.exemple.com")

Plusieurs fonctionnalités peuvent être contrôlées en même temps en envoyant l'en-tête avec une liste de politiques séparées par des virgules, ou en envoyant un en-tête distinct pour chaque politique.

Par exemple, les exemples suivants sont équivalents :

http
Permissions-Policy: picture-in-picture=(), geolocation=(self https://exemple.com/), camera=*Permissions-Policy: picture-in-picture=()Permissions-Policy: geolocation=(self https://exemple.com/)Permissions-Policy: camera=*

Cadres intégrés

Pour qu'une fonctionnalité soit activée dans un<iframe>, son domaine autorisé doit aussi être présent dans la liste d'autorisation de la page parente. En raison de cecomportement d'héritage, il est conseillé de définir le support le plus large possible pour une fonctionnalité dans l'en-tête HTTP, puis de définir le sous-ensemble de support nécessaire dans chaque<iframe>.

Pour autoriser tous les domaines à accéder à la géolocalisation :

html
<iframe src="https://exemple.com" allow="geolocation *"></iframe>

Pour appliquer une politique au domaine courant et à d'autres :

html
<iframe  src="https://exemple.com"  allow="geolocation 'self' https://a.exemple.com https://b.exemple.com"></iframe>

Important : Par défaut, si un<iframe> navigue vers un autre domaine, la politique n'est pas appliquée au domaine vers lequel l'<iframe> navigue. En listant le domaine cible dans l'attributallow, la politique de permissions appliquée à l'<iframe> d'origine sera appliquée au domaine cible.

Plusieurs fonctionnalités peuvent être contrôlées en même temps en incluant une liste de directives de politique séparées par des points-virgules dans l'attributallow.

html
<iframe  src="https://exemple.com"  allow="geolocation 'self' https://a.exemple.com https://b.exemple.com; fullscreen 'none'"></iframe>

Il est utile de mentionner la valeursrc. Comme indiqué plus haut, utiliser cette valeur dans la liste d'autorisation signifie que la fonctionnalité associée sera autorisée dans cet<iframe>, tant que le document chargé provient du même domaine que l'URL dans son attributsrc. Cette valeur est levaleur par défaut de la liste d'autorisation pour les fonctionnalités listées dansallow, donc les exemples suivants sont équivalents :

html
<iframe src="https://exemple.com" allow="geolocation 'src'"></iframe><iframe src="https://exemple.com" allow="geolocation"></iframe>

Refuser l'accès aux fonctionnalités puissantes

La société SecureCorp Inc. souhaite désactiver les API Microphone (par exempleMediaDevices.getUserMedia()) etGeolocation dans son application. Elle peut le faire en utilisant l'en-tête de réponse suivant :

http
Permissions-Policy: microphone=(), geolocation=()

En définissant() pour la liste des domaines, les fonctionnalités indiquées seront désactivées pour tous les contextes de navigation (y compris tous les<iframe>), quel que soit leur domaine.

Combiner l'en-tête HTTP et les politiques de<iframe>

Par exemple, supposons que vous souhaitez activer la géolocalisation sur votre propre domaine, ainsi que dans du contenu embarqué provenant de votre réseau publicitaire de confiance. Vous pouvez définir la politique de permissions globale de la page ainsi :

http
Permissions-Policy: geolocation=(self https://trusted-ad-network.com)

Dans vos<iframe> publicitaires, vous pouvez autoriser l'accès au domainehttps://trusted-ad-network.com ainsi :

html
<iframe src="https://trusted-ad-network.com" allow="geolocation"></iframe>

Si un autre domaine est chargé dans l'<iframe>, il n'aura pas accès à la géolocalisation :

html
<iframe src="https://rogue-origin-exemple.com" allow="geolocation"></iframe>

Spécifications

Specification
Permissions Policy
# permissions-policy-http-header-field

Compatibilité des navigateurs

Voir aussi

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2026 Movatter.jp