1UnitedPower: alle Script-Tags entfernen für eine Vorschau

Beitrag lesen

Meine Damen und Herren, habe ich Ihre Aufmerksamkeit?

s. Thema. Es geht um eine Online-Demo meines CMS da können Bodies editiert werden und so kann da auch JavsScript eingebaut sein. Es soll jedoch eine Vorschau geben und dafür müssen die <script>-Tags alle raus.

Vermutlich möchtest du damit XSS-Attacken vermeiden. Da reicht es aber nicht aus nur <script>-Tags zu entfernen. Es gibt diverse andere Möglichkeiten JavaScript in HTML einzubetten. Beispielsweise über Attribut-EventHandler: <button onclick="alert('buhaha');"> oder das JavaScript-URI-Scheme: <a href="javascript:alert('buhaha');">

Gibt es evntl. in jQuery eine fertige Funktion, welche die gewünschten Tags aus einer String-Variablen (und nur aus dieser) entfernt?

String-Verarbeitungsfunktionen sind ungeeignet für DOM-Manipulationen. Die Grenzen sind da relativ schnell erschöpft.

Bitte mal um Hinweise, Danke Dir!

Ich würde JavaScript gar nicht generell unterbinden, sondern eine Sandbox für User-generiertes JavaScript schaffen. JavaScript ist immerhin ein wichtiger Bestandteil jeder Webseite und deine Vorschau-Funktion sollte das nicht einfach ignorieren.

Trotzdem musst du natürlich dafür sorgen, dass außerhalb der Sandbox kein ausführbarer JavaScript-Code landet. XSS ist dein Stichwort, dazu solltest du jede Menge Lektüre finden.

--
“All right, then, I'll go to hell.” – Huck Finn