Dokument: parseHTMLUnsafe() statische Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used 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