Dokument: parseHTMLUnsafe() statische Methode

Baseline 2024
Newly available

Since July 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Die parseHTMLUnsafe() statische Methode des Document-Objekts wird verwendet, um eine HTML-Eingabe zu analysieren. Dabei können unerwünschte HTML-Elemente und Attribute gefiltert werden, um eine neue Document-Instanz zu erstellen.

Im Gegensatz zu Document.parseHTML() wird bei XSS-unsicheren HTML-Entitäten nicht garantiert, dass sie entfernt werden.

Syntax

js
Document.parseHTMLUnsafe(input)
Document.parseHTMLUnsafe(input, options)

Parameter

input

Eine Zeichenkette oder eine TrustedHTML-Instanz, die das zu analysierende HTML definiert.

options Optional

Ein Optionsobjekt mit den folgenden optionalen Parametern:

sanitizer Optional

Ein Sanitizer- oder SanitizerConfig-Objekt, das definiert, welche Elemente der Eingabe erlaubt oder entfernt werden. Beachten Sie, dass im Allgemeinen ein "Sanitizer als effizienter erwartet wird als ein SanitizerConfig, wenn die Konfiguration wiederverwendet werden soll. Wenn nicht angegeben, wird kein Sanitizer verwendet.

Rückgabewert

Ausnahmen

TypeError

Diese Ausnahme wird ausgelöst, wenn:

  • html eine Zeichenkette übergeben wird, wenn Trusted Types durch eine CSP erzwungen wird und keine Standardrichtlinie definiert ist.
  • options.sanitizer einen Wert übergeben wird, der nicht ein Sanitizer, SanitizerConfig oder eine Zeichenkette ist.
    • eine nicht normalisierte SanitizerConfig (eine, die sowohl "erlaubte" als auch "entfernte" Konfigurationseinstellungen enthält).
    • eine Zeichenkette, die nicht den Wert "default" hat.

Beschreibung

Die parseHTMLUnsafe() statische Methode kann verwendet werden, um eine neue Document-Instanz zu erstellen und dabei optional unerwünschte Elemente und Attribute herauszufiltern. Das resultierende Document wird einen Inhaltstyp von "text/html", einen Zeichensatz von UTF-8 und eine URL von "about:blank" haben.

Der Suffix "Unsafe" im Methodennamen weist darauf hin, dass zwar die Eingabezeichenkette von unerwünschten HTML-Entitäten gefiltert werden kann, aber keine Durchsetzung der Bereinigung oder Entfernung potenziell unsicherer XSS-relevanter Eingaben erfolgt. Wenn keine Sanitisierungskonfiguration im Parameter options.sanitizer angegeben ist, wird parseHTMLUnsafe() ohne jegliche Sanitisierung verwendet. Beachten Sie, dass <script>-Elemente während der Analyse nicht ausgewertet werden.

Das eingegebene HTML kann deklarative Schatten-Wurzeln enthalten. Wenn die HTML-Zeichenkette mehr als eine deklarative Schatten-Wurzel in einem bestimmten Schattenhost definiert, wird nur das erste ShadowRoot erstellt — nachfolgende Deklarationen werden als <template>-Elemente innerhalb dieser Schatten-Wurzel analysiert.

parseHTMLUnsafe() sollte anstelle von Document.parseHTML() verwendet werden, wenn potenziell unsichere HTML-Zeichenfolgen analysiert werden müssen, die aus irgendeinem Grund XSS-unsichere Elemente oder Attribute enthalten müssen. Wenn das zu analysierende HTML keine unsicheren HTML-Entitäten enthalten muss, sollten Sie Document.parseHTML() verwenden.

Beachten Sie, dass, da diese Methode nicht zwingend Eingabezeichenfolgen von XSS-unsicheren Entitäten bereinigt, Eingabezeichenfolgen auch mit der Trusted Types API validiert werden sollten. Wenn die Methode sowohl mit vertrauenswürdigen Typen als auch mit einem Sanitizer verwendet wird, wird die HTML-Eingabe durch die vertrauenswürdige Typ-Transformationsfunktion geleitet, bevor sie bereinigt wird.

Spezifikationen

Specification
HTML
# dom-parsehtmlunsafe

Browser-Kompatibilität

Siehe auch