Für das Blogsystem WordPress gibt es das sehr weit verbreitete Plugin Trackback Validation. Viele setzen es ein, und irgendwie vertraut man dem Ding auch, stammt es doch von der Rice University, zumindest lt. Webseitenangaben.
Frank Bültge hatte sich das Plugin schon genauer angesehen und festgestellt, dass MySQL-Tabellen beschrieben werden. Daher hat er auch ein Plugin veröffentlicht, um diese Tabellen zu bereinigen.
Schaut man sich den Sourcecode jedoch näher an, so entdeckt man eine Unstimmigkeit:
In den Optionen ist bei Installation folgendes bereits selektiert: „Submit data to the Computer Security Lab at Rice University for research. Tatsächlich wird erst durch das Setzen dieses Hakens eine WordPress-Tabelle geführt, wobei jeder Trackback an diese Uni übertragen wird. Da stellt sich schon mal die Frage, was die Uni mit all den Trackbacks will. Transparenz? Nein, die Uni hält es natürlich nicht für nötig, auf der Webseite darüber zu informieren. Diese MySQL-Tabelle wird dabei ausschließlich für die Uni geführt, Kommentare werden zusätzlich in der Kommentar-Tabelle abgelegt, wenn nicht freigegeben.
Steigt man tiefer ein, so sieht man, dass die Uni die PHP-Klasse Snoopy einsetzt. Diese ermöglicht es, Webseiten per PHP auszulesen, um z.B. an die URLs zu kommen. Kein Problem soweit. Allerdings setzt die Uni die Version 1.2 von Snoopy ein, nur gab es von Snoopy u.a. am 24.10.2005 ein sog. „Snoopy 1.2.1 bug fix and security release“. Das Datum von Dateien im Zip-Archiv des Plugins ist allerdings neuer, außerdem steht auf der Webseite der Uni 21 May 2006: Bugfix release: 0.7.1.
Das bedeutet: Die sog. Rice University vertreibt alten, verseuchten Code und sieht es nicht für notwendig an, bei Updates auch die mitgeführten Daten zu aktualisieren. Ich weise deshalb so drastisch darauf hin, weil doch gerade eine Uni hier eine Vorzeigerolle spielt und nicht schlampen sollte.
Der Witz steht dann auch noch hier:
We are actively developing additional heuristics to add to the plugin; if you observe TrackBack spam that makes it past this plugin, please let us know.
Fakt ist, dass die Hauptarbeit die Open-Source-Klasse Snoopy macht. Das Plugin führt lediglich einen kleinen Regex-Aufruf durch. Heuristik? Im Plugin ist jedenfalls nichts zu spüren.
Wie geht es weiter?
Ich habe aufgrund dieser Erkenntnisse beschlossen, ein eigenes Trackback-Validierungs-Plugin zu schreiben. Ist auch schon fertig und wird gerade von mir hier auf Software Guide getestet. Ich werde es in den nächsten Tagen veröffentlichen. Ich setze damit die neueste Snoopy-Version ein und es gibt eine Möglichkeit, Trackback-Spam ganz streng zu beurteilen (Permalink muss exakt übereinstimmen) oder das ganze weicher zu fahren (irgend ein Link auf Blog reicht).
Fortsetzung folgt ;-)