Sanitizer: Methode removeUnsafe()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Die removeUnsafe()-Methode der Sanitizer-Schnittstelle konfiguriert den Sanitizer so, dass alle Elemente und Attribute, die vom Browser als XSS-gefährlich angesehen werden, entfernt werden.
Die Methode kann aufgerufen werden, um jeden Sanitizer XSS-sicher zu machen.
Syntax
removeUnsafe()
Parameter
Keine.
Rückgabewert
true, wenn die Operation irgendwelche Elemente, Attribute oder Inhaltsattribute für Ereignishandler entfernt hat, die als XSS-gefährlich angesehen werden, und false, wenn keine Elemente oder Attribute entfernt wurden.
Beschreibung
Die removeUnsafe()-Methode konfiguriert den Sanitizer so, dass alle Elemente und Attribute, die vom Browser als XSS-gefährlich angesehen werden, entfernt werden. Dies schließt die Elemente <embed>, <frame>, <iframe>, <object>, <script> und <use> sowie die Inhaltsattribute für Ereignishandler wie onafterprint, onbeforeinput usw. ein.
Beachten Sie, dass Sie diese Methode nicht aufrufen müssen, um den Sanitizer sicher zu machen, wenn Sie ihn mit einem der "sicheren" HTML-Setter verwenden, wie z.B. Element.setHTML() und ShadowRoot.setHTML(). Bei Verwendung in diesen Settern werden dieselben Elemente und Attribute aus dem Eingabewert entfernt, ohne die übergebene Sanitizer-Instanz zu ändern.
Beispiele
>Grundlegende Verwendung
Der folgende Code zeigt, wie removeUnsafe() verwendet wird.
// Create sanitizer.
const sanitizer = new Sanitizer(/* Some configuration */);
// Make the configuration XSS-safe
sanitizer.removeUnsafe();
Eine sichere Sanitizer-Konfiguration erstellen
Dieses Beispiel zeigt, wie der Aufruf von removeUnsafe() die Sanitizer-Konfiguration XSS-sicher macht.
JavaScript
Der Code erstellt zuerst ein neues Sanitizer-Objekt, das das sichere Element <p>, die unsicheren Elemente <script> und <iframe> sowie das unsichere onwebkitanimationend-Ereignishandler-Attribut erlaubt.
Anschließend ruft der Code removeUnsafe() auf dem Sanitizer auf und protokolliert seine Konfiguration.
// Create sanitizer that allows
const sanitizer = new Sanitizer({
elements: ["p", "script"],
attributes: ["onwebkitanimationend"],
replaceWithChildrenElements: ["iframe"],
});
// Make the sanitizer safe!
sanitizer.removeUnsafe();
// Log the sanitizer configuration
const sanitizerConfig = sanitizer.get();
log(JSON.stringify(sanitizerConfig, null, 2));
Ergebnisse
Die resultierende Konfiguration wird unten gezeigt. Beachten Sie, wie die unsicheren Elemente und Attribute aus den "Allow"-Listen in die entsprechenden "Remove"-Listen verschoben wurden. In diesem Fall haben wir immer noch <p> in den erlaubten Elementen, sodass nur <p>-Elemente in die Eingabe aufgenommen werden, wenn der Sanitizer verwendet wird.
Spezifikationen
| Specification |
|---|
| HTML Sanitizer API> # dom-sanitizer-removeunsafe> |