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 parsen. Dabei können unerwünschte HTML-Elemente und Attribute gefiltert werden, um eine neue Document
Instanz zu erstellen.
Im Gegensatz zu Document.parseHTML()
wird nicht garantiert, dass XSS-gefährliche HTML-Entitäten entfernt werden.
Syntax
Document.parseHTMLUnsafe(input)
Document.parseHTMLUnsafe(input, options)
Parameter
input
-
Ein String oder eine
TrustedHTML
Instanz, die das zu parsende HTML definiert. options
Optional-
Ein Options-Objekt 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 einSanitizer
effizienter ist als eineSanitizerConfig
, 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
ein String übergeben wird, während Trusted Types durch eine CSP erzwungen werden und keine Standardrichtlinie definiert ist.options.sanitizer
einen:- Wert erhält, der nicht ein
Sanitizer
,SanitizerConfig
oder String ist. - nicht-normalisierte
SanitizerConfig
enthält (eine, die sowohl "erlaubte" als auch "entfernte" Konfigurationseinstellungen enthält). - String erhält, der nicht den Wert
"default"
hat.
- Wert erhält, der nicht ein
Beschreibung
Die parseHTMLUnsafe()
statische Methode kann verwendet werden, um eine neue Document
Instanz zu erstellen und dabei unerwünschte Elemente und Attribute optional herauszufiltern.
Das resultierende Document
wird einen content type von "text/html", einen character set von UTF-8 und eine URL von "about:blank" haben.
Das Suffix "Unsafe" im Methodennamen weist darauf hin, dass die Methode zwar die Eingabestrings von unerwünschten HTML-Entitäten filtern kann, jedoch nicht die Sanitierung oder Entfernung von potenziell unsicherem XSS-relevantem Input erzwingt.
Wenn keine Sanitizer-Konfiguration im options.sanitizer
Parameter angegeben ist, wird parseHTMLUnsafe()
ohne irgendwelche Sanitierung verwendet.
Beachten Sie, dass <script>
Elemente während des Parsens nicht ausgewertet werden.
Das eingabene HTML kann deklarative Shadow Roots enthalten.
Wenn der HTML-String mehr als einen deklarativen Shadow Root in einem bestimmten Shadow Host definiert, wird nur der erste ShadowRoot
erstellt - nachfolgende Deklarationen werden als <template>
Elemente innerhalb dieses Shadow Roots geparst.
parseHTMLUnsafe()
sollte anstelle von Document.parseHTML()
verwendet werden, wenn potenziell unsichere HTML-Strings geparst werden müssen, die aus irgendeinem Grund XSS-gefährliche Elemente oder Attribute enthalten müssen.
Wenn das zu parsende HTML keine unsicheren HTML-Entitäten enthalten muss, sollten Sie Document.parseHTML()
verwenden.
Da diese Methode Eingabestrings nicht unbedingt von XSS-gefährlichen Entitäten reinigen muss, sollten Eingabestrings zusätzlich mit der Trusted Types API validiert werden. Wenn die Methode sowohl mit Trusted Types als auch mit einem Sanitizer verwendet wird, wird die HTML-Eingabe vor der Sanitierung durch die Trusted-Type-Transformationsfunktion geleitet.
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