WordPress ist Scripting-gefährdet!

Nachdem ich vorhin die Idee hatte, mal zu prüfen, ob WordPress anfällig für Cross-Site Scripting ist, bin ich inzwischen über meinen anfänglichen Schock hinweg.

Mein Testfall war folgender einfacher Code:

1
2
3
<script>
  top.document.location.href = "http://google.de";
</script>

Postet man diesen als einfachen Kommentar in einem Blog, wird die Artikelseite danach jedes Mal automatisch auf Google weitergeleitet - einzige Ausnahme: man hat JavaScript bei sich deaktiviert. Das ganze geht sogar soweit, dass man als Administrator so seine Probleme hat, den Kommentar über die Admin-Oberfläche wieder zu löschen! Beim ersten Mal bin ich direkt in die Datenbank reingegangen und habe dort den Eintrag geändert.

Natürlich musste ich mir nun überlegen, wie ich dem ganzen Herr werden kann: die plausibelste Lösung war in meinen Augen, HTML-Quelltext in Kommentaren zu deaktivieren. Allerdings kann man so auch keine Links mehr posten oder irgendwelche Texte hervorheben - etwas, das ich selbst immer gerne mache: eine Lösung musste her!

Die Idee war, ein Plugin zu benutzen, das einem erlaubt, BBCode anstelle von HTML zu verwenden - doch das einzige, was ich fand, war ein Plugin, dass seit WordPress 1.2 nicht mehr weiterentwickelt worden ist 🙁 .

Wie ich nunmal bin, habe ich mir kurzerhand gedacht: na wenn es nichts gibt, dann mache ich es eben selber 😀 ! Dabei herausgekommen ist in den letzten Stunden das kleine Plugin BBComment - das erste Plugin, das ich komplett selber geschrieben habe und das für die Hauptfunktionalität kein Fummeln im WordPress-Quelltext benötigt 😉 .

Alle bereits existierenden Kommentare werde ich übrigens in nächster Zeit von HTML nach BBCode übersetzen 😉 . Soll ja alles seine Ordnung haben 😀 !
Update:
Die Probleme wurden beseitigt 🙂 .
XSS-befreite Grüße, Kenny

5 Kommentare » Schreibe einen Kommentar

  1. Hi,
    also danke für so ein schnelles Feedback. Ich verstehe leider nicht viel von PHP und dem Plugin-Schreiben. Aber wenn die Arbeit an diesem Plugin deinerseits abgeschlossen ist, teste ich es gerne in meinem Testblog. So hätte ich es besser zum Testen und ich kann auch dann über das Plugin in meinem eigentlichen Blog berichten:).

    Auch wenn sehr wenige Blogger BB-Code nutzen, wäre es sehr interessant, dieses in einem WordPress-Blog auszuprobieren. Für BBCode-Kommentare gibt es ja bereits Plugins, aber für komplette Blogposts nicht sonderlich.

  2. Hallo,
    kann man denn dieses deinerseits entwickeltes Plugin bereits herunterladen und testen?

    Dieses Thema hat mich auch gerade beschäftigt, da ich demnächst darüber bloggen werde. Ich habe bereits 7 gute Linkverweise zu Themen BBCode und BB-Code-Wordpress-Plugins, welche ich dann allesamt veröffentlichen werde.

    • Hallihallo und guten Abend...

      Wie bereits geschrieben, gibt es zur Zeit noch einige Probleme mit verschachtelten Tags 🙁 . Nehme an, dass da das Preg-Replacing nicht sooo toll arbeitet, wie ich mir das eigentlich vorgestellt hatte. Wenn du willst, kann ich morgen einmal die derzeitige Version 0.1b3 zur Verfügung stellen - es ist jedoch geplant, das ganze auf komplett eigene Parsing-Füße zu stellen. Damit wäre es für mich dann auch möglich, darauf zu achten, dass Tags in der richtigen Reihenfolge geschlossen werden: durch einen internen Stack.

Schreibe einen Kommentar

Um Ihnen beim weiteren Kommentieren auf dieser Webseite die erneute Eingabe Ihrer Daten zu ersparen, wird beim Absenden Ihres Kommentars ein Cookie an Ihren Browser gesendet und von diesem gespeichert. Mit dem Absenden eines Kommentars auf dieser Webseite stimmen Sie der Speicherung und Übertragung dieses Cookies explizit zu.

Pflichtfelder sind mit * markiert.