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