Dokument: parseHTML() statische Methode
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more browser support for this feature? Tell us why.
Die parseHTML() statische Methode des Document-Objekts bietet eine XSS-sichere Methode zum Parsen und Säubern eines HTML-Strings, um eine neue Document-Instanz zu erstellen.
Syntax
Document.parseHTML(input)
Document.parseHTML(input, options)
Parameter
input-
Ein String, der das HTML definiert, das bereinigt und in die Shadow-Root eingefügt werden soll.
optionsOptional-
Ein Optionsobjekt mit den folgenden optionalen Parametern:
sanitizer-
Ein
SanitizeroderSanitizerConfig-Objekt, das definiert, welche Elemente des Inputs erlaubt oder entfernt werden, oder der String"default"für die Standardsäuberungskonfiguration. Die Methode entfernt alle XSS-unsicheren Elemente und Attribute, auch wenn diese vomsanitizererlaubt sind. Wird keine Angabe gemacht, wird die Standardkonfiguration desSanitizerverwendet.Beachten Sie, dass die Verwendung derselben Konfiguration mehrmals effizienter ist, wenn Sie einen
Sanitizerverwenden und diesen bei Bedarf ändern.
Rückgabewert
Ein Document.
Ausnahmen
TypeError-
Dies wird ausgelöst, wenn
options.sanitizerübergeben wird:SanitizerConfig, die nicht gültig ist. Zum Beispiel eine Konfiguration, die sowohl "allowed" als auch "removed" Konfigurationseinstellungen enthält.- ein String, der nicht den Wert
"default"hat. - ein Wert, der kein
Sanitizer,SanitizerConfigoder String ist.
Beschreibung
Die parseHTML()-Methode parst und bereinigt einen HTML-String, um eine neue Document-Instanz zu erstellen, die XSS-sicher ist. Das resultierende Document wird einen Inhaltstyp von "text/html", einen Zeichensatz von UTF-8 und eine URL von "about:blank" haben.
Wenn kein sanitizer im options.sanitizer-Parameter angegeben ist, wird parseHTML() mit der Standardsäuberungskonfiguration verwendet. Diese Konfiguration eignet sich für die meisten Anwendungsfälle, da sie XSS-Angriffe sowie andere Angriffe wie Clickjacking oder Spoofing verhindert.
Ein benutzerdefinierter Sanitizer oder SanitizerConfig kann angegeben werden, um auszuwählen, welche Elemente, Attribute und Kommentare erlaubt oder entfernt werden. Beachten Sie, dass selbst wenn unsichere Optionen vom sanitizer erlaubt sind, sie bei der Verwendung dieser Methode dennoch entfernt werden (sie entfernt die gleichen Elemente wie ein Sanitizer, auf dem Sanitizer.removeUnsafe() aufgerufen wurde).
Das Eingabe-HTML kann deklarative Shadow-Roots enthalten. Wenn der HTML-String mehr als eine deklarative Shadow-Root in einem bestimmten Shadow-Host definiert, wird nur die erste ShadowRoot erstellt - nachfolgende Deklarationen werden als <template>-Elemente innerhalb dieser Shadow-Root geparst.
parseHTML() sollte anstelle von Document.parseHTMLUnsafe() verwendet werden, es sei denn, es besteht ein spezifischer Bedarf, unsichere Elemente und Attribute zuzulassen. Wenn das zu parende HTML keine unsicheren HTML-Entities enthalten muss, sollten Sie Document.parseHTML() verwenden.
Beachten Sie, dass, da diese Methode Eingabestrings von XSS-unsicheren Entitäten immer säubert, sie nicht unter Verwendung der Trusted Types API gesichert oder validiert wird.
Spezifikationen
| Spezifikation |
|---|
| HTML> # dom-parsehtml> |
Browser-Kompatibilität
Siehe auch
Document.parseHTMLUnsafe()Element.setHTML()undElement.setHTMLUnsafe()ShadowRoot.setHTML()undShadowRoot.setHTMLUnsafe()DOMParser.parseFromString()zum Parsen von HTML oder XML in einen DOM-Baum- HTML Sanitizer API