WordPress 2.5 ist scheiße

Wer ein bisschen erfahrung mit softwäjhr-projekten hat, der weiß das schon: Die funkzjonalität und komplexität einer softwäjhr wäxt so lange, bis die entwickler den überblick verlieren. Danach wäxt nur noch der kohdumfang, weil sich gleichermaßen jene funkzjonen ansammeln, die kein mensch braucht und weil der kohd durch hingestrokelte "work arounds" aufgebläht wird, die die angesammelten probleme nicht beheben können.

Diese fase ist bei WordPress erreicht, und zwar lange schon. Aber mit der veröffentlichung der versjon 2.5 ist es offensichtlich geworden.

Aus einem einst nützlichen stück softwähr zum bloggen ist ein aufgeblähtes monstrum geworden, das gegenwärtig mit 78943 zeilen PHP-kohd und 23766 zeilen javascript (!) daher kommt (mit find und wc gezählt in der deutschen versjon). Von der ursprünglichen idee, ein kleines system zu entwickeln, das mit plackins nach bedarf aufgemotzt werden kann, ist nichts mehr übrig. Zu allem überfluss funkzjoniert die jauche auch nicht richtig. Noch nie konnte man so dankbar sein, dass auch andere blogsysteme aktiv entwickelt werden.

Als wenn das nicht reichte, wurde eine bisherige stärke von WordPress einfach aufgegeben: Die neue benutzerführung ist eine verschlechterung. Wer sich diesen schrotthaufen in der gegenwärtigen versjon installiert, bekommt also jede menge neuer fehler und eine schlechtere benutzerführung. Ich kann jedem blogger nur die empfehlung geben, diese zumutung nicht hinzunehmen und darauf zu drängen, dass die an sich brauchbare softwäjhr WordPress wieder für menschen entwickelt wird.

Welches die neuen fehler sind?

Nun, das folgende sind nur ein paar beispiele für die gegenwärtige seuche in WordPress, da mir vieles wohl gar nicht aufgefallen ist:

WordPress funkzjoniert nicht mit dem opera-brauser: Wer opera verwendet, muss sich jetzt zum bloggen einen anderen brauser suchen, wenn er in seinen beiträgen auch bilder einbetten will oder dateien zum download stellen will. Die ganze AJAX-scheiße, die dafür frisch gehäckt wurde, läuft nicht mit opera. Ich habe es mangels mäck nicht probiert, aber ich möchte wetten, dass es mit einem safari problem geht; schließlich benutzt Matt persönlich ja einen mäckintosch. Und der hat schon geschrieben, dass er über tausend bilder damit hochgeladen hat und dass alles funkzjoniert. Wenn ich in meine statistik schaue, stelle ich fest, dass etwa 10 prozent meiner leser einen opera verwenden, hingegen nur etwas mehr als ein prozent einen safari – das stellt die proporzjonen schon ganz gut dar. Aber man hält es dort nicht für weiter schlimm, eine veröffentlichung zu machen, die für ein gutes zehntel (zumindest der deutschen) webnutzer nicht benutzbar ist.

WordPress gibt unzutreffende HTTP-fehlerkohds aus: Wenn jemand einen kommentar zu einem beitrag schreibt und die felder nicht richtig ausfüllt, gibt WordPress einen HTTP-fehler 500 zurück, einen internen sörver-fehler. Die bedeutung dieses fehlers ist nicht, dass eine benutzereingabe falsch ist und korrigiert werden muss, sondern dass der sörver ein schweres problem hat. Der internet explorer hat dafür eine eigene, "benutzerfreundliche" darstellung und viele proxysörver schreiben hier ebenfalls eine eigene meldung, so dass der anwender nicht einmal mehr den text der fehlermeldung sieht. Der eindruck, der beim kommentieren entsteht, ist nicht, dass man eine falsche eingabe gemacht hat, sondern dass etwas im sörver oder im blog kaputt ist. Da wird wohl kaum jemand einen zweiten versuch machen. Es ist geradezu unfassbar, dass da leute an WordPress herumhäcken, denen die bedeutung der fehlerkohds nicht klar ist. Vielleicht sollten sie sich einfach mal den RFC 2616 durchlesen, der ist nicht so ganz unwichtig, wenn man eine solche anwendung schreibt. Aber nein, der umbau der grafischen gestaltung ist wesentlich wichtiger als eine semantisch korrekte fehlerbehandlung. Schreibt eigentlich microsoft bei WordPress mit?

Der kwalitätsanspruch der aktuellen häcks tendiert gegen null: Ein gutes beispiel dafür sind die plackins, die von den WordPress-Entwicklern selbst erstellt werden. Das spämmerkennungs-plackin "akismet" wurde erst vor ein paar tagen in einer neuen versjon veröffentlicht, bei der die grundfunkzjonen fehlerhaft sind. Angesichts der tatsache, dass spämmschutz für einen heutigen blogger von elementarer wichtigkeit ist, sollte man hier ja eine gewisse kwalität erwarten. Wer der aufforderung aus dem "Dashboard" gefolgt ist, ein aktuelles akismet-plackin zu installieren, hat jetzt bei hohem spämmaufkommen keine schangse mehr, falsch erkannte spämms händisch freizuschalten. Das ist ziemlich arm.

Die groß angekündigten neuen funkzjonen waren zuvor schon als plackins verfügbar: Wir erinnern uns. Als WordPress 2.3 erschien, wurde ganz groß auf die kacke gehauen, dass WordPress jetzt auch "tags" kann. Dafür gab es zwar schon gut entwickelte plackins, die eine komplette verwaltung implementierten, aber das hat die entwickler nicht weiter interessiert, sie haben es von grund auf neu entwickelt. Und zwar schlechter, nämlich ohne die möglichkeit einer "tag"-verwaltung. Aber dafür so, dass die alten plackins nicht mehr funkzjonierten. Wer vorher "tags" verwendet hat (es war eine minderheit), der hatte mit der neuen versjon die schlechtere lösung, wer sie nicht verwendet hat, brauchte die neue funkzjon wohl gar nicht. Deutlicher kann man nicht zeigen, dass man sich keine gedanken über die nutzer macht. Aber wenn man sich ohne jede not unter zeit- und versjonsdruck setzt, denn muss man eben immer wieder melden, welche tollen, neuen beglückungsideen in der neuen versjon verbastelt wurden. Genau das gleiche gilt in der aktuellen versjon für die gravatare, die jetzt vom kern unterstützt werden; auch dafür gab es gute plackins – zumal der kohd dafür wirklich überschaubar ist. Er ist jedenfalls überschaubarer als die änderungen im kernsystem, die immer wieder dazu geführt haben, dass die grundfunkzjonen des blogs fehlerhaft wurden. Mal geht der beitragseditor nicht mehr, und ein anderes mal werden keine mäjhls mehr aus dem blog verschickt.

Dass die deutsche versjon von WordPress mit einem kwelltext ausgeliefert wurde, der einen syntaxfehler enthielt, passt da gut ins bild einer entwicklung, die weder auf kwalität achtet noch dazu bereit ist, vor der veröffentlichung auch nur den einfachsten test zu machen. Denn ein einfacher aufruf der startseite des blogs nach den änderungen hätte gereicht, diesen fehler offenbar zu machen; an stelle des blogs wäre eine nüchterne und recht hässliche fehlermeldung erschienen. Na ja, das können ja ruhig ein paar zehntausend blogger entdecken! Was für eine haltung!

Und diese haltung, sie hat mittlerweile "tradizjon". Schon, als WordPress 2.3 anfing, nach hause zu telefonieren, zeigte sich die inappelable ignoranz der entwickler gegenüber den benutzern. Schon damals war mir klar, dass WordPress durch sehr trübes wasser fahren wird. So langsam fängt es eben an, unangenehm schlammig zu werden, so "hübsch" das neue "Dashboard" auch farbig gestaltet wurde.

Aber muss man nicht appdäjhten wegen der aktuellen angriffe auf WordPress-blogs?

Nein, das muss man nicht. Es kann nämlich sein, dass das nicht hilft.

Denn im moment weiß niemand, wie es den angreifern gelingt, die blogbeiträge mit spämm zu versalzen. Das Problem betrifft eine ganze bandbreite verschiedener versjonen und konfigurazjonen. Kein einziger WordPress-entwickler hat bislang stellung dazu bezogen, das einfallstor für die kräcker beschrieben und angekündigt, dass er eine abhilfe programmiert hat. Das heißt aber nicht, dass man nicht etwas ähnliches geschrieben hätte. Zum beispiel, dass jetzt doch angesichts der angriffe der beste zeitpunkt für einen appdäjht auf die neue versjon sei. Was diesen worten jede glaubwürdigkeit nimmt, ist allerdings die tatsache, dass zu dieser zeit auch und gerade die aktuelle versjon von den angriffen betroffen war. Da sieht man gut, welcher stil der kommunikazjon von einigermaßen "offizieller" seite gepflegt wird, es ist, als würde einem als blogger immer wieder ins gesicht gespuckt.

Ein verheerendes problem, und keine "richtige" stellungnahme auf der offizjellen WordPress-internetzseite. Diese würde ja den hinweis enthalten, dass man eventuell etwas gründlich verbockt hat, dass man mit seinen ehrgeizigen plänen gescheitert ist. Statt dessen schweigen und stimmen aus der zweiten reihe, die schwachsinn erzählen, obwohl sie es eigentlich besser wissen müssten.

Es wird höchste zeit, WordPress wieder den benutzern, den bloggern zurückzugeben! Wer eine so breit verwendete softwäjhr mitprogrammiert, sollte sich schon darüber klar sein, dass dies kein platz für seine spielereien und für das ausprobieren "kuhler" ideen als selbstzweck ist. (Es gibt ja auch eine plackin-schnittstelle dafür.)

Ich denke jetzt schon seit über einer woche darüber nach, ob ich einen fork mache. Was mich abhält, ist vor allem meine gegenwärtige lebenssituazjon; ich bin obdachlos, lebe vom betteln und habe keinen dauerhaft verfügbaren internetz-zugang. Damit erscheint es mir unmöglich, diese aufgabe allein zu wuppen.

Aber ich weiß, was getan werden muss (und auch, wie man es tut, denn ich kann häcken):

  • Der gesamte kwelltext von WordPress ist so gut wie undokumentiert. Es ist damit für einen programmierer sehr schwer, einen einstieg in die konzepte zu erhalten. Deshalb ist zunächst der stand (ich würde von 2.3.3 ausgehen) mit kommentaren zu versehen, aus denen sich mit hilfe eines tuhls wie doxygen eine dokumentazjon für programmierer erstellen lässt. Dabei fällt auch gleich eine automatisch erstellte dokumentazjon der "template tags" ab, die für designer eine erleichterung wäre. Denn der jetzige stand im WordPress-codex ist eher als fragmentarisch zu bezeichnen, so dass ich mich beim gestalten immer wieder auf grep zurückgeworfen fühle, um in den kwelltext zu schauen. Wenn man es schafft, diesen bereich unverändert zu lassen, haben auch WordPress-gestalter etwas von der doku, und der fork hat schnell einen guten vorrat bestehender dihseings.
  • Die API für den zugriff auf die datenbank gehört verändert. Die verantwortung für das kwoten von variablen muss zentralisiert werden, etwa, indem man platzhalter in einem formatstring mit der abfrage einbettet. Dabei kann auch gleich das jeweilige tabellen-präfix durch einfache textersetzung hinzugefügt werden, so dass nicht mehr für jede abfrage die entsprechende instanz-variable verwendet werden muss. Anschließend müssen die bestehenden 1164 datenbankabfragen des gegenwärtigen kerns in die neue API übertragen werden. Diese änderung führt zu einer inkompatibilität, die aber wiederum dazu führt, dass die verantwortung der abwehr von SQL-injections an einer stelle im kohd liegt. Das wird zu einer größeren sicherheit der gesamten anwendung führen.
  • Ein möglichst großer teil der funkzjonalität sollte aus dem kernsystem herausgenommen und in plackins ausgelagert werden, um einem blogger die möglichkeit zu geben, ein sehr schmales system aufzusetzen. Zumal einige dieser funkzjonen definitiv unerwünscht sein können. Sowohl die seit vier jahren fehlerhaften "geschönten" anführungszeichen als auch die automatische vergällung der links mit dem "nofollow"-attribut wird intern über die plackin-schnittstelle eingebunden. In der folge schreibe ich ein plackin, um ein "plackin" des WP-kerns außer kraft zu setzen, das kann es doch wirklich nicht sein. Meiner meinung nach sollte auch der ziemlich fette WYSIWYG-editor opzjonal sein, aber ich weiß, dass man darüber streiten kann.
  • Die gesamte gegenwärtige plackin-implementation gehört gesichtet und überarbeitet. Zurzeit habe ich noch keine gute idee, aber die käme mir bei der durchsicht. Dass die gefühlten milljonen fertiger WordPress-plackins eventuell einer anpassung bedürfen, halte ich eher für ein kleineres problem.
  • WordPress gehört ein bisschen deAJAXifiziert. An einigen stellen ist AJAX wirklich sinnvoll eingesetzt worden, an anderen stellen stellt es sich nur in den weg. Wer nur einmal versucht hat, seine widgets mit hilfe von opera neu anzuordnen, der weiß, dass hier eine andere schnittstelle besser gewesen wäre. (Es geht, aber wirklich nicht besonders gut.) Das automatische speichern von texten beim schreiben ist hingegen eine prinzipiell gute idee, die beibehalten werden kann.
  • Natürlich muss entweder das "tagging" aus WP 2.3.3 in ein plackin verlagert oder die kernfunktion um eine gute möglichkeit zur verwaltung der "tags" ergänzt werden. Ich persönlich wäre für letzteres, da es mir sinnvoll erscheint, das taxonomie-konzept in der datenbank zu belassen und da "tagging" dabei wie von alleine abfällt. Aber ob "tags" in die kernfunkzjonen gehören, das ist eine frage, über die man durchaus nachdenken darf.
  • Für mich die wichtigste sache überhaupt: Ich bin nicht der meinung, dass eine anwendung in den brauser gehört, und ich glaube, dass vieles von der "aufgeblähtheit" in WordPress darauf zurückzuführen ist, dass hier eine anwendung im brauser zum laufen gebracht wird. Die immer noch bestehenden inkompatibilitäten der verschiedenen brauser führen hier ein maß an zusätzlicher komplexität ein, das offenbar immer weniger beherrschbar wird. Besser wäre es, eigens für diesen fork von WordPress eine speziell auf die möglichkeiten zugeschnittene desktop-anwendung zu erstellen und sie so zu implementieren, dass es versjonen für alle gängigen betriebssysteme gibt. (Hierzu könnte man wxWindows nehmen, wenn es eine binärversjon werden soll, es kann aber auch gern "nacktes" GTK sein oder vonmiraus auch Java.) Wichtig wäre mir dabei eine vollständige verwaltungsfunktion (einschließlich "tags", benutzerverwaltung und vielleicht sogar ferngesteuerter appdäjht von plackins und kernsystem, letzteres allerdings über ein wirklich ausgereiftes und sicheres protokoll). Die installazjon dieser software muss einfach sein, die performanz auch auf lahmen mühlen befriedigend. (Ich will keine technologische mauer gegenüber bloggern aus armen verhältnissen bauen, weil ich selbst aus armen verhältnissen komme.)

Wenn jemand diese gedanken interessant findet und an einem solchen projekt mitwirken möchte, denn bitte ich um eine kurze mitteilung. Wegen meiner lebensumstände kann es allerdings manchmal etwas länger dauern, bis ich antworte, ich bin nicht regelmäßig onlein.

Auf jeden fall kann ich profezeihen, dass es viele monate dauern wird, den stand von WordPress 2.3.3 zu konsolidieren und frühere schwächen im entwurf zu korrigieren. Aber ich glaube auch, dass da draußen einige menschen sind, die darüber sehr froh sein werden.

Ich bin eingeschnappt. Wegen snap.

Warum verbasteln eigentlich so viele blogger dieses nichtsnutzige “snap”-plackin in ihr wordpress? Das ist so ein fetzen skript, der einen schnappschuss der verlinkten website einblendet, wenn man mit der maus über den link fährt, es ist überflüssig wie ein kropf. Nach nutzen fragt da keiner, dieser unfug ist ein reiner technischer selbstzweck, der wegen seiner “kuhlness” verbastelt wird.

Und zwar einer, der sich in den weg stellen kann.

Haben diese ganzen blogger sich schon ein einziges mal gefragt, ob sie vielleicht auch ein paar leser haben, die nicht mit DSL am netz hängen. Ich bin zum beispiel oft ein derartiger leser. Und aus meinen zugriffsstatistiken weiß ich, dass ungefähr 35 prozent der leser meiner blogs ebenfalls mit schmalbandigem internetzzugang unterwegs sind. Ich halte diesen wert übrigens für durchaus repräsentativ, für einen wenig-sürfer lohnt sich der monatliche festpreis für eine DSL-flätträjht einfach nicht. Können sich diese offenbar völlig gedankenlosen und technikverliebten blogger vorstellen, wie jemand vorgeht, wenn er beim sürfen einen gebührenticker im kopf hat? Ich frage das ja nur mal so, ich bin gewiss nicht der einzige arme in deutschland.

Und weil ich so arm bin, kann ich die frage auch gut beantworten. Ich benutze opera als brauser, ich öffne die ganzen seiten, die ich lesen will, in eigenen tabs und ich gehe offlein, um in aller ruhe und ohne zeitdruck lesen zu können. Meine paar cent, die mich das internetz so kostet, muss ich mir eben erbetteln, das ist hartes brot und da wird man sparsam. Zumal brötchen besser satt machen als texte.

Und manchmal schreibe ich dann auch etwas dazu. Ich mache das ebenfalls offlein, in einem guten, altmodischen editor; der ist übrigens viel besser benutzbar als jede noch so ausgefeilte “anwendung”, die man in blogsysteme einbettet. Das bisschen HTML geht mir gut von der hand, und ich erspare mir auch gleich die immensen ladezeiten einer aufgeblähten javascript-anwendung im brauser über eine schmalbandige internetz-verbindung. Tatsächlich merke ich sogar, dass ich kwalitativ besser schreibe, wenn ich ein gutes werkzeug zum schreiben benutze und mich nicht mit der aufgeblähten schwerfälligkeit einer web-anwendung herumschlagen muss.

Ja, und denn möchte ich einen permalink von so einer schrottseite in mein geschreibe übernehmen. Ich gehe also mit der maus darauf und will das kontextmenü öffnen, um die linkadresse in die zwischenablage zu kriegen. Und was passiert? Da geht so ein völlig sinnloser, in der gestaltung an eine sprechblase angelehnter bereich auf, der ein bild aus dem internet nachladen will. Das geht natürlich nicht. Wenn ich mal wieder unter einem windohs leide, kommt gleich hinterher das dialogfenster, das mir die herstellung einer internetz-verbindung ermöglicht. Und das nimmt mir den fokus aus dem brauser. Denn schalte ich rasch meinen opera in den offlein-modus, um mich nicht mit noch mehr von diesen nervdialogen rumschlagen zu müssen. Und dann versuche ich es nochmal, nur, um zu sehen, dass sich jetzt opera mit der frage meldet, ob er nicht einfach onlein gehen soll. Und dann fange ich an, das alles zu hassen. Weil es aus einem einfachen vorgang, der mich sonst eine sekunde gekostet hätte, eine klickorgie macht, die auch meine geschicklichkeit erfordert, damit ich vor der einblendung operas zum zuge komme. Versteht ihr blogger das da draußen? Ihr verbaut aus lauter gedankenlosigkeit ein völlig überflüssiges und nichtsnutziges technisches ding in euren blogs, das die benutzung eurer texte für einen gewissen leserkreis erschwert. Wenn das eure absicht war, ist euch das gelungen. Wenn nicht, denn denkt doch bitte einmal darüber nach, ob ihr so eine scheiße wirklich braucht!

Und kommt hoffentlich zu dem ergebnis, dass es wichtigeres als technischen spielkram gibt! Und entfernt diesen schrott einfach, der sich übrigens auch bei nutzung über DSL immer wieder in den weg stellen kann!

Das ist ein kleiner schritt in richtung benutzerfreundlichkeit eurer sites, der euch nicht einmal eine minute kostet.

Und der vielen menschen das lesen eurer texte erleichtert.

Wenn tatsächlich jemand den spielkram auf euren seiten vermisst, sagt mir einfach bescheid. Vielleicht ist es ja wirklich schon so weit, dass menschen mehr wert auf sinnlose spielerei als auf inhaltliche kwalität und zugänglichkeit der inhalte legen.

Vielleicht werdet ihr dann auch öfter verlinkt. Denn ich verlinke grundsätzlich keine internetz-seiten, die mich wegen der bedingung meiner armut aus reinem spieltrieb ausschließen. Und. Ich bin gewiss nicht der einzige arme, der so denkt; wer noch eine spur von rückgrat hat, wird genauso mit derartigem dummfug umgehen.

Wenn ihr öfter verlinkt werdet, vielleicht werdet ihr dann auch öfter gelesen. Vielleicht sogar von ein paar leuten ernstgenommen. Jener blogger, der mich gerade wegen dieser “snap”-scheiße zum explodieren bringt, tut so, als würde ihn das gesellschaftliche problem der massenverarmung in deutschland sehr interessieren, er vergleicht einige auswüxe der staatlichen behandlung dieses problemes sogar mit dem faschismus. Und er verwendet ein plackin für sein wordpress, dass einer aufschrift “nicht für arme menschen mit schmalbandigem internetz-zugang” gleichkommt. Ich nehme so jemanden jedenfalls nicht ernst.

(Der blogger ist hier bewusst nicht verlinkt. Ich werte gedankenlosigkeit nicht durch meine links auf.)

Eigentlich kann ich es nicht mehr hören

Angesichts der gegenwärtig massiv ausgebeuteten sicherheitsprobleme in wordpress kommt eine diskussjon auf, die ziemlich sinnfrei ist, aber wohl gerade deshalb mit besonderer intensität geführt wird. Es ist die system-diskussjon, die schier unendliche kwasselei darüber, welches das bessere blogsystem oder die bessere programmiersprache ist. (Ich verlinke diese “diskussjonen” hier bewusst nicht, aber man stolpert gewiss darüber, wenn man ein bisschen guhgellt.)

Klar haben die s9y-blogger jetzt gut lachen. Aber die empfehlung, “einfach” auf s9y umzusteigen, ist nicht unbedingt der weisheit letzter schluss. Etliche betroffene blogs laufen ja doch schon etwas länger, sie enthalten zum teil tausende von beiträgen. Alle diese beiträge sollten hinterher – guhgell hat sie ja indiziert und es gibt interne links – unter den gleichen adressen verfügbar sein, so dass hier hinterher sicher ein bisschen handarbeit ansteht, so segensreich import-skripten auch sein mögen.

Wenn man dann einmal probeweise einen import auf einem lokalen system durchführt und dabei feststellt, dass es probleme bei der konvertierung von umlauten gibt, vergeht einem schnell die lust auf einen umstieg. Natürlich kann man das alles noch nachflicken, aber das geht eben alles nicht so schnell, wie manche im moment den anschein erwecken wollen. Und denn ist da noch der applohd-ordner von wordpress, der sich gar nicht in die s9y-medienverwaltung einfügen will…

Wer so beflissen vom einfachen umstieg redet, denke bitte auch einmal daran, dass viele menschen keine besonderen technischen kenntnisse haben. Gerade blogger nicht, denn mit dem bloggen geht ja auch das versprechen einher, dass man relativ mühelos eigene inhalte in das welte weite web bringen kann. In meinen augen bedeutet das, dass die programierer eine ganz besondere verantwortung dafür tragen, dass die softwäjhr auch für menschen mit durchschnittlichen technischen fähigkeiten gut benutzbar ist, ohne dass irgendwelche kräcker sich auf tausende von schwachstellen stürzen können. Allein schon wegen dieser bedingung ist der selbst erzeugte zeitdruck der wordpress-entwickler kontraproduktiv und ausgesprochen schwachsinnig. (Vor allem, wenn sie ihre termine nicht einmal schaffen. Und dass man die versjon 2.4 einfach ausfallen lässt, statt dass man den termin verschiebt, das ist keine meisterleistung der kommunikazjon, sondern unfreiwillig komisches teater.)

Denn gibt es da aber noch einen anderen punkt. Der ist auch nicht besonders hilfreich für die jetzt betroffenen blogger, aber wenigstens substanzjell. Es ist das problem der programmiersprache PHP und der zugriff auf die datenbank, der ohne netz und doppelten boden angriffe recht leicht machen kann.

Ein typischer ausschnitt aus einer wordpress-komponente könnte etwa so aussehen (hier extrem vereinfacht, um das problem klar zu machen):

global $wpdb;
$r = $wpdb->query("select * from comments where ID='$id'");

Dieses $id in der SQL-Anweisung  ist eine PHP-variable. Sie wird im String direkt durch ihren wert ersetzt, typischerweise kommt der inhalt dieser variablen aus einer benutzereingabe. Wenn es ein cräcker jetzt schafft, da etwa folgendes reinzukriegen…

$id = "1'; update posts set post_text = 'Visit my great Viagra Shop www.fock.you'";

…denn wird der folgende text an den MySQL-sörver gesendet (zeilenumbruch von mir hinzugefügt):

select * from comments where ID='1';
update posts set post_text = 'Visit my great Viagra Shop www.fock.you'

Da die einzelnen anweisungen durch semikolon getrennt werden, führt der MySQL-sörver hier gehorsam zwei verschiedene anweisungen aus. In der ersten ermittelt er ein paar daten aus der kommentartabelle, in der zweiten ersetzt er sämtliche beiträge durch einen text mit recht eindeutiger funktion, der zum besuch eines betrügerischen webangebotes auffordern soll.

Es gibt natürlich eine methode $wpdb->quote(), die solche missbräuche unmöglich macht…

$id = $wpdb->quote($id);

…ja, wenn sie nur immer und von allen komponenten mit jeder benutzereingabe aufgerufen wird. Das ist nicht zentral gekohdet, sondern es liegt in der verantwortung des programmieres einer jeden komponente, sich darum zu kümmern. Ein einzige plackin, das hier etwas sorglos vorgeht, und die gesamte wordpress-datenbank kann von jedem derhergelaufen deppen im internet beliebig manipuliert werden. Man nennt diesen angriff übrigens eine “SQL-Injection”, es handelt sich geradezu um ein typisches PHP-problem.

Und genau das wird wohl auch die kwelle der gegenwärtigen angriffe sein, die sich durch eingefügte werbelinks in normalen blogbeiträgen auszeichnen. Ich weiß noch nicht, welches plackin dafür verantwortlich ist, aber ich weiß, dass wahrscheinlich nicht jedes wordpress-blog angreifbar ist. Denn sonst wären noch viel mehr blogs von dieser seuche betroffen.

Man kann das etwa mal mit der vorgehensweise in der programmiersprache python vergleichen (ebenfalls stark vereinfacht, um den blick auf das wesentliche zu richten).

global connection
cur = connection.cursor()
cur.query('select * from comments where ID=%s', (id, ))

Hier fällt hoffentlich auch dem unkundigen auf, dass die variable id hier nicht direkt in die zeichenkette eingefügt wird. (Obwohl man das durch auch in python so machen könnte, wenn man ein bisschen doof ist.) Vielmehr ist die zentrale komponente für den zugriff auf die datenbank dafür zuständig, den eigentlichen text der SQL-abfrage zusammenzusetzen; dabei werden bestimmte zeichen “unschädlich” gemacht, ohne dass sich der programmierer an jeder stelle selbst darum kümmern will.

Mit diesem unterschied vor augen, kann man durchaus sagen, dass PHP bereits im entwurf seiner schnittstelle zur datenbank sehr unsicher ist. WordPress hat es bislang versäumt, dieses manko durch eine eigene zwischenschicht zu beseitigen; und so kann es immer wieder einmal passieren, dass ein einziges, schäbig programmiertes plackin ein ganzes blog in die klauen der spämmer und kräcker treibt.

Diese grundsätzliche PHP-schwachstelle bestünde auch in s9y. Man hat sich dort bislang durch ein streben nach hoher kwalität des kohds beholfen, und das hat alles in allem gut funkzjoniert. Wenn s9y aber erst einmal so richtig populär wird, denn wird es zum einen immer wieder “inoffizjelle” komponenten und dieseins geben, zum anderen werden sich alle kräckköppe dieser welt auf die ausbeutung von schwächen stürzen. Dass diese arschlöcher im moment lieber wordpress nehmen, liegt vor allem an der größeren verbreitung von wordpress.

Es wäre nun aber durchaus möglich, die offizjelle wordpress-API um eine bessere schnittstelle zur datenbank zu erweitern, und ich kann mich erinnern, dass ich das auch einmal angeregt habe. Leider müsste anschließend der gesamte kohd von wordpress angefasst werden. Wenn ältere plackins noch laufen sollen, müsste die schlechte schnittstelle weiterhin erhalten bleiben, und damit würde sie auch weiterhin benutzt werden. Auch von deppen, die sich für tolle plackin-programmierer halten.

In meinen augen zeigt sich immer mehr, dass es bei wordpress schon lange nicht mehr darum gehen sollte, neue “Features” einzubauen, sondern viel mehr darum, systematische schwachstellen aus dem bestehenden kohd zu entfernen. Und zwar gründlich. Auf kompatibilität um jeden preis sollte dabei besser verzichtet werden, da sonst schnell neue probleme eingeführt werden…

Wenn ich doch nur die zeit und die möglichkeiten dazu hätte, ich würde jetzt damit beginnen, meinen eigenen fork zu machen. An vernunft bei den gegenwärtigen WP-entwicklern kann ich nicht mehr glauben.

Wie man bei scientology programmiert…

Nein, ich meine nicht, wie man dort menschen programmiert. Sondern, wie man kompjuter programmiert, wenn die benutzereingaben im berüchtigten 200-fragen-test überprüft werden sollen. Vielleicht sollten die mal jemanden programmieren lassen, der sich mit regulären ausdrücken in javascript auskennt

Aber was erwarte ich von der “Church of Scientology”? Kwalität etwa? Das wäre doch etwas viel verlangt.

Das war mal wieder typisch…

Da schreibt man tagelang alles mögliche in sein hauptblog und wird so wenig gelesen, dass man sich schon sinnfragen stellt, und denn erwähnt man einmal beiläufig das bildblog und es gibt eine zugriffsspitze, die sich gewaschen hat. So ist das in deutschland mit der bloggosfähre. Am besten, ich schreibe nur noch über populäre temen. Und packe ein bisschen bulewar dazu. Dann werde ich auch wieder gelesen. Aber leider bin das nicht mehr ich.

Und die scheiße mit dem schrottschreiben und der werbefinanzierung, die werde ich gewiss nicht anfangen.

Und wieder etwas wahnsinn

Flash Lite 3 unterstützt zwar nicht alle Funktionen des Flash Player 9, scheint für Microsoft aber momentan fürs mobile Internet unverzichtbar zu sein [...]

Klar, dass man bei der eh schon wenig erfreulichen netznutzung mit einem händi auch noch von animierter und flackernder reklame angebrüllt werden kann, das ist doch wirklich unverzichtbar. Wer hat eigentlich den leuten, die so denken, in das gehirn geschissen?

Auf den hintergrund achten!

Ich kann jedem gestalter des internetzes (neudeutsch: "webdesigner") nur empfehlen, dass er möglichst wenig bei den besuchern seiner produkte voraussetzt. Vor allem sollte er nicht voraussetzen, dass alle menschen die gleichen, blöden standardeinstellungen ihrer betriebssysteme verwenden, denn es gibt eine menge menschen, die das mit gutem grund nicht tun. Ich bin zum beispiel so ein "kwerulant", der an jedem seiner rechner ein paar einstellungen macht, die eher etwas unüblich sind, die ihm aber das tägliche arbeiten mit der maschine vereinfachen.

Zum beispiel ist bei mir der hintergrund fast aller dinge, die text anzeigen oder eingeben lassen, ein pastellenes gelb. Das finden andere menschen zwar oft ein bisschen scheußlich, aber mir erleichtert es das lesen und schreiben am bildschirm. Und genau das ist der maßstab, den ich anlege, egal, was andere dabei denken.

Das gilt übrigens auch für die standardeinstellungen der brauser, die ich so verwende.

Deshalb kann ich jeden tag das gleiche erleben. Wohl gestaltete seiten im internetz, mit massenhaft grafik angereichert, oft sogar mit der neuesten trickserei namens AJAX attraktiv gemacht, aber ihr gestalter hat nicht darauf geachtet, eine background-color zu setzen. In der regel passt mein helles, freundliches und unaufdringliches gelb nicht zu den tönungen von blau und türkis, die momentan modern sind, und die grafische exzellenz gelangt so in einem kontext, der sie ausgesprochen hässlich wirken lässt.

Das verrät zwei dinge: erstens macht sich der gestalter nicht den geringsten gedanken darum, wie sein machwerk auf anderen maschinen und bei besuchern mit bestimmten präferenzen aussehen könnte, und zweitens kommt er (und der abnehmer seines machwerkes) auch niemals auf die idee, zu testen, ob das wirklich überall brauchbar aussieht. Das zeigt auf, welche art von menschen man ansprechen will: solche, die einfach immer nur den standardkram hinnehmen und gar nicht auf die idee kommen, einen hilfreichen, persönlichen stil zu haben.

Es gibt übrigens einen ganz einfachen trick, diesen fehler zu vermeiden, und dieser trick kostet nichts. Es reicht völlig aus, wenn man bei der gestaltung selbst etwas unübliche hintergrundfarben verwendet. Schon kann dieser häufige fehler nicht mehr passieren.

Das sei übrigens auch jedem empfohlen, der themes für blogsysteme entwickelt…

Werter leser meiner seiten…

…der du guhgell nimmst, um ins suchen-feld den folgenden "suchbegriff" einzugeben:

http://blah.tamagothi.de/2008/03/09/ich-%5BRest gekürzt]

Es gibt da so etwas, das du wahrscheinlich noch nicht verstanden hast. Da oben im browser, unter der bunten bunten flackerfläche, findest du eine so genannte adresszeile. Das ist der platz, an dem du die URL eingeben kannst, und schon holt der brauser das ganze zeug flink und flutsch aus dem internetz. Guhgell brauchst du dafür gar nicht. Denn guhgell ist gar nicht das internetz, das ist "nur" so eine suchmaschine, mit der man seiten im internetz finden kann, die gewisse begriffe enthalten.

Wollte ich nur mal angemerkt haben, damit du es in zukunft besser weißt.

Das wahre wort des tages…

…kommt heute aus einem kommentar auf heise online zur meldung, dass die überwacher jetzt endlich kameras zur verfügung haben, mit denen man menschen noch unter die klamotten glotzen kann:

Alle bösen Zukunftsvisionen, alle grundüblen Sciencefiction-Apokalypsen, alle Romane und Geschichten einer absolut
dunklen Zukunft sind in ihren Wurzeln schon da und wachsen mit atemberaubender Geschwindigkeit schier unaufhaltsam. Totalüberwachung, durch Kleidung und Wände, Datenbanken über alle und jeden, bis hin zur DNA. Polizeistaaten sprießen, selbst Verfassungsrichter beugen sich dem Diktat der Allüberwachung.

Wann kommt endlich der Meteor?

Ich würd ja gern widersprechen, aber ich weiß nicht wie…