Sanitizer: removeUnsafe()-Methode
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 die Sanitizer-Konfiguration so, dass sie alle Elemente, Attribute und Ereignishandler-Inhaltsattribute entfernt, die vom Browser als XSS-unsicher angesehen werden.
Die Methode kann aufgerufen werden, um jede benutzerdefinierte Konfiguration XSS-sicher zu machen. Beachten Sie, dass Sie diese Methode nicht aufrufen müssen, wenn Sie den Sanitizer mit einem der "sicheren" HTML-Setzer wie Element.setHTML() und ShadowRoot.setHTML() verwenden. In diesen Setzern wird die Methode implizit aufgerufen, ohne die übergebene Sanitizer-Instanz zu verändern.
Syntax
removeUnsafe()
Parameter
Keine.
Rückgabewert
true, wenn die Operation irgendwelche Elemente, Attribute oder Ereignishandler-Inhaltsattribute entfernt hat, die als XSS-unsicher gelten, und false, wenn keine Elemente oder Attribute entfernt wurden.
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 Sanitizer-Konfiguration sicher machen
Dieses Beispiel demonstriert, wie das Aufrufen von removeUnsafe() die Sanitizer-Konfiguration XSS-sicher macht.
JavaScript
Der Code erstellt zunächst ein neues Sanitizer-Objekt, das das sichere Element <p>, die unsicheren Elemente <script> und <iframe>, sowie das unsichere onwebkitanimationend-Ereignishandler-Attribut erlaubt.
Dann ruft der Code removeUnsafe() für den 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 von den "allow"-Listen zu den entsprechenden "remove"-Listen verschoben wurden. In diesem Fall haben wir immer noch <p> in den erlaubten Elementen, sodass beim Einsatz des Sanitizers nur <p>-Elemente im Eingabewert importiert werden.
Spezifikationen
| Specification |
|---|
| HTML Sanitizer API> # dom-sanitizer-removeunsafe> |