Hallo Rolf,
dank für die Information. Bei mir meckert eine Scansoftware, die auf Sicherheitslücken im Quellcode scannt, eine "Client_Potential_XSS" Warnung.
Wenn ich es richtig verstehe, meckert die Software, weil bei der Erstellung der neuen Elemente die Attribut-Werte und Textknoten teilweise dynamisch von Variablen kommen, die z.T. selbst aus dem DOM ermittelt werden (oder Werte, die aus einer lokalen Datei interaktiv eingelesen werden). Diese "Client potential XSS" habe ich bzgl. Risikopotential noch nicht wirklich verstanden. Ich verstehe es so, dass wenn Clientseitig der DOM manipuliert wird und JS diesen dann in einer Form als Input benutzt, schadhafter Code entstehen kann (aber nicht für den Server, der liefert nur die angefragten Webseiten und JS files aus.
Da die Web Applikation auch Lokale Dateien einliesst und der Inhalt anzeigt wird, habe ich grundsätzlich XSS bedacht und Maßnahmen eingebaut. Allerdings überprüfen die Maßnahmen mit DOMPurify den neuen Jquery Node, wenn er noch nicht im DOM hängt. Ich dachte, dass wäre ausreichend, nur leider scheint die Scansoftware, dass nicht zu erkennen.
Ich nutze es so, weil es wohl auch performanter ist:
const dirtyNode = $('<div/>').append(schadCode), cleanNode = DOMPurify.sanitize(dirtyNode[0], {IN_PLACE: true}); $('#targetID').append(cleanNode);
Ich dachte, dass ich damit auf der sicheren Seite bin?
Gruss, Michael