Sanitizer: removeUnsafe() Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die removeUnsafe() Methode der Sanitizer Schnittstelle konfiguriert die Sanitizer-Einstellungen so, dass alle Elemente, Attribute und Event-Handler-Inhaltsattribute entfernt werden, die von dem 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-Setter, wie z.B. Element.setHTML() und ShadowRoot.setHTML(), verwenden, um den Sanitizer sicher zu machen. Wenn sie in diesen Setzern verwendet wird, wird die Methode implizit aufgerufen, ohne die übergebene Sanitizer-Instanz zu verändern.
Syntax
removeUnsafe()
Parameter
Keine.
Rückgabewert
true, wenn die Operation Elemente, Attribute oder Event-Handler-Inhaltsattribute entfernte, die als XSS-unsicher gelten, und false, wenn keine Elemente oder Attribute entfernt wurden.
Beispiele
>Grundlegende Nutzung
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 der Aufruf 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 Event-Handler-Attribut erlaubt.
Der Code ruft dann removeUnsafe() im 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 "erlauben"-Listen zu den entsprechenden "entfernen"-Listen verschoben wurden. In diesem Fall haben wir immer noch <p> in den erlaubten Elementen, so dass nur <p> Elemente in der Eingabe importiert werden, wenn der Sanitizer verwendet wird.
Spezifikationen
| Specification |
|---|
| HTML Sanitizer API> # dom-sanitizer-removeunsafe> |