Dokument: parseHTMLUnsafe() statische Methode
Baseline 2024Newly 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
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
- oderSanitizerConfig
-Objekt, das definiert, welche Elemente der Eingabe erlaubt oder entfernt werden. Beachten Sie, dass im Allgemeinen ein"Sanitizer
als effizienter erwartet wird als einSanitizerConfig
, wenn die Konfiguration wiederverwendet werden soll. Wenn nicht angegeben, wird kein Sanitizer verwendet.
Rückgabewert
Ein Document
.
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 einSanitizer
,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.
- eine nicht normalisierte
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
Document.parseHTML()
Element.setHTML()
undElement.setHTMLUnsafe()
ShadowRoot.setHTML()
undShadowRoot.setHTMLUnsafe()
DOMParser.parseFromString()
zum Parsen von HTML oder XML in einen DOM-Baum- HTML Sanitizer API