Ansichten eines Informatikers

Dieses Scheiß WordPress…

Hadmut
6.5.2009 0:08

Ich krieg langsam nen Rappel wegen dieser Blog-Software.

Die geben sich zwar Mühe, daß da vieles schön aussieht. Aber sie kümmern sich nur sehr eingeschränkt um Sicherheit. Und der Programmierstil ist schlecht. Was wesentlich an der Sprache PHP liegt, die eh nicht viel taugt.

Das Problem:

Wenn man sich bei WordPress als Benutzer oder Admin anmeldet, dann wird das Passwort im Klartext (bzw. base64-encoded) übertragen. Das will man natürlich nicht, weil sonst wieder alle möglichen Hacker und Möchtegerns trivial das Passwort abhören und einem dann das Blog verunstalten. Eigentlich naheliegend. Und trotzdem gibt es keine saubere Lösung dafür.

Ein Weg wäre, ein und dasselbe Blog doppelt im Webserver einzublenden, nämlich unter https und unter http. Dann wäre der login verschlüsselt. Die grausliche Struktur von WordPress macht das aber effektiv unmöglich.

Zwar ist es nicht sonderlich schwer, dasselbe Blog nochmal im HTTPS-Bereich auftauchen zu lassen, aber damit das funktioniert, muß man dem Ding beibringen, daß das mit HTTPS jetzt der Home-URL sei, weil man sonst nach jedem Klick gleich wieder auf der HTTP-Seite landet. Geht auch. Nur glaubt WordPress dann eben, daß es da liegt und schreibt in alle Trackbacks und Pingbacks die HTTPS-URL. Was man ja nicht will und was zweitens nicht geht, wenn man kein teures offizielles Zertifikat hat. WordPress bekommt es nicht auf die Reihe, daß es einerseits unter dem URL A liegt, bei pingbacks und trackbacks aber den URL B angibt (als den kanonischen URL). Geht einfach nicht.

Ein Ausweg für einen Teil der Probleme wäre nun, sich ein Plugin zu schreiben, was einen filter für post_link einsetzt, der im URL den einen durch den anderen präfix ersetzt. Geht sogar.

Aber bei pingbacks geht’s nicht. Da war ein anderer am Werk, weshalb sich der Programmierstil unterscheidet. Und in der Funktion weblog_ping gibt es keine Möglichkeit, einen Filter einzufügen, ohne drin herumzupatchen. Zwar ruft das wieder die Funktion get_option(‘home’) auf, für die man einen Filter einbauen kann. Das bringts aber nicht, weil man dann gleich alle Abfragen dieses Werts verändert, und damit den gleichen Effekt erzielt, als ob man den Wert gleich hart einstellt, und damit gleich bei jedem Klick wieder von der HTTPS- auf der HTTP-Seite landet.

Die bräuchten einfach eine separate Variable/Option, in der man den URL für trackbacks und pingbacks einstellen kann. Machen sie aber nicht. Das ganze WordPress ist in dieser Hinsicht so ein richtiger Murks. Das ist teilweise so richtig schlecht programmiert, da bekommt an manchen Stellen des Quelltextes Haarausfall beim Lesen. Allerdings ist das mit PHP auch nicht viel leichter zu machen. Wer PHP erfunden hat, gehört auf den Mond geschossen. So eine bekloppte und sicherheitsanfällige Sprache. Wenn ich allein an den damaligen Mist mit den Global Variables denke.

Bugs an WordPress.org zu reporten ist außerdem so richtig wirkungslos. Wenn man in dieses Forum etwas einträgt, wird es kaum gelesen und durch die hohe Dichte an neuen einträgen sofort nach hinten verschoben.

Eine ordentliche Alternative hab ich bisher aber auch nicht gefunden.

2 Kommentare (RSS-Feed)

nadar
7.5.2009 16:19
Kommentarlink

Erwähntest du vor einiger Zeit nicht was von “selber schreiben?”
Serendipity taucht wohl auch nix?


Hadmut
7.5.2009 23:21
Kommentarlink

Serendipity ist auch in PHP geschrieben, und mir ist grundsätzlich alles suspekt, was in PHP geschrieben ist.

Das “selber schreiben” hab ich immer noch im Hinterkopf, allerdings so viel Zeugs mit höherer Priorität zu tun. Letztlich ist Bloggen doch nur ein Hobby.

Ich überlege noch, womit ich das implementiere. Am “angenehmsten” wäre mir Ruby on Rails. Da würde ich aber erst noch abwarten, bis Rails unter Ruby 1.9 läuft und eine ordentliche Anbindung an den Apache hat.

Ich bohre außerdem noch an einem anderen Problem, nämlich daß einige Funktionen eines Blogs (Trackback, Pingback,…) nirgends richtig dokumentiert sind. Eins mit XMLRPC, das andere irgendwie über URLs und so. Müßt ich erst mal den Kram zusammensuchen.

Ansonsten hätte ich schon eine Menge Ideen, was man da noch an schicken Funktionen einbauen könnte, was bisherige Blogs nicht haben.

Mein Hauptproblem ist aber, daß ich künstlerische Defizite habe und mir partout kein schönes Webdesign einfällt. Damit würde dann erst mal die statischen Seiten hier aufräumen und modernisieren.