Das Putzlowitsch Test- und SEO-Blog

Spam-Kommentare im dritten Quartal 2010

Spam-Kommentar

Kürzlich hatte Martin im TagSEOBlog seinen 5000sten Kommentar vermeldet. Was mir dabei aufgefallen war, die aktuelle Kommentar-Id lag da ungefähr bei 18000. Das bedeutet, daß etwa 13000, also 70% der Kommentare dort Spam-Kommentare sind. Die Statistik weist es bei ihm auch aus, Akismet hat 13044 Kommantare als Spam eingestuft.

Da ich Akismet hier im Blog nicht verwende, habe ich mal nach der höchsten Kommentar-ID gesehen und diese in Relation zu den genehmigten Kommentaren gesetzt. Die ID steht derzeit bei 1064, genehmigte Kommentare habe ich hier 956, das sind also (1064-956)/1064 = 0,10 mithin also nur 10% Kommantarspam.

Das ist aber nur die halbe Wahrheit, denn durch ein selbstgeschriebenes Plugin schaffen es viele Spam-Versuche gar nicht erst in die WordPress-Datenbank und bekommen somit auch keine Kommentar-Nummer. Für die letzten drei Monate Juli, August und September (3. Quartal 2010) habe mal die Logfiles auf die Spamversuche hin untersucht und bin auf etwa 700 derartige Einträge gestoßen. Im selben Zeitraum gab es ungefähr 160 genehmigte Kommentare und dazu 30 Kommentare die ich von Hand als Spam eingestuft habe. Das ergibt nun 730/890 = 0.82 also etwa 80% Spam.

Nebenbei hab ich auch gleich die beliebtesten Artikel der Kommentar-Spammer ermittelt:

Nr Artikel/Seite Spam PR Kom
1 WordPress 2.3 – Anonym up-to-date bleiben 14,1% 2 14
2 Letzter Beitrag als Startseite 12,0% 2 33
3 Mit WordPress per E-Mail bloggen 11,5% 1 43
4 WordPress und die suboptimale MySQL-Optimierung (5.0.51) 8,5% 2 42
5 Die Verbindestrichung 7,7% 0
6 WordPress 2.7 – Wartungsmodus ohne Plugin 6,1% 3 3
7 123 Moderate Comment Notification 6,0% 3 4

Ich habe nur die Seiten und Artikel berücksichtigt, die 5% oder mehr am Spamaufkommen ausmachen. In der Spalte PR steht der aktuelle Google-Pagerank und in der Spalte Kom die Anzahl der abgegebenen und freigeschalteten Kommentare.

Meine derzeit PR-stärksten Seiten (PR 4) werden gar nicht („WordPress ab 2.1 – Optionen für die Startseite„) oder nur mittelmäßig („WordPress für statische Seiten optimieren„) Ziel vom Spam-Kommentaren. Am PR der Seite kann es alos nicht liegen, wonach die Spammer die Artikel auswählen. Ist aber auch egal.

Erfreulich ist vielmehr, daß bei mir gute 95% Spam gar nicht erst in WordPress landen und ich diese einfach links liegen lassen kann. Ein bißchen Beachtung bekommen sie dann bestenfalls für die statistische Auswertung. :-)

Keine Kommentare »

Ein nacktes WordPress installieren

WordPress-Installation

Eine neue WordPressinstallation enthält üblicherweise bereits ein paar Beispieldaten. So sind schon eine Seite und ein Artikel mit einem Kommentar vorhanden, etwa wie dieser hier. Die Blogrolle ist auch schon mit ein paar Links gefüllt.

Wenn man das nicht möchte, weil man beispielsweise einen WordPress-Export (per WP-Export als xml) importieren möchte und die IDs der Artikel und Seiten erhalten bleiben sollen, kann man eine benutzerdefinierte Installation verwenden.

WordPress lädt am Anfang der Installation die Datei wp-content/install.php, falls sie vorhanden ist. In dieser kann man einige Installationsfunktionen „überschreiben“. Das funktioniert so wie bei den Funktionen aus der pluggable.php im Verzeichnis wp-includes. WordPress prüft, ob eine Funktion bereits vorhanden ist:

if ( !function_exists('wp_install') ) :
 ...
endif;

Falls nicht, wird die WordPress-Funktion „installiert“, andernfalls wird die bereits vorhandene verwendet. Die wordpresseigenen Installationsfunktionen findet man in wp-admin/includes/upgrade.php, diese kann man sich als Vorlage für eigene Modifikationen hernehmen.

WordPress ohne „Hallo Welt“

Um nun eine leere WordPress-Installation zu erhalten, wird die Funktion wp_install_defaults in der Datei wp-content/install.php neu definiert:

<?php
function wp_install_defaults($user_id) {
}
?>

Es ist einfach eine leere Funktion, dadurch wird aber auch keine Default-Kategorie für Artikel und Links erstellt. Möchte man die Standardkategorien trotzdem haben, nimmt man den oberen Teil aus der originalen WP-Funktion (bis // Now drop in some default links) in die eigene Funktion mit rein. Dabei das global $wpdb nicht vergessen.

Wie man auf diese Weise bereits Plugins bei der Installation aktivieren kann, hatte ich früher schon mal beschrieben.

Nachdem die Anpassungen in der install.php vorgenommen wurden und diese in das WordPress-Content-Verzeichnis kopiert wurde, kann man die WordPressinstallation wie gewohnt starten.

Weitere Artikel mit Bezug zu diesem:
Keine Kommentare »

Spam-Bot Wetter, die Bots testen Kommentare

Heute scheint gutes Spam-Wetter zu sein, die Spambots sind unterwegs und testen die Kommentar-Formulare, im Moment drüben bei Putzlowitsch.
Das Muster ist immer gleich:

xyz.amazonaws.com  /2007/01/09/spam-spammiger-am-spammigsten
xyz.amazonaws.com  /2007/01/09/spam-spammiger-am-spammigsten/
xyz.amazonaws.com  /wp-comments-post.php
xyz.casema.nl      /wp-comments-post.php
xyz.slicehost.net  /wp-comments-post.php

Erst kommt so ein Hansel vorbei und ruft eine Seite mit der falschen URL (ohne abschließendem Slash) auf. Dann wird er auf die richtige URL weitergeleitet und versucht einen „Kommentar“ abzusetzen. Gleich danach kommen noch zwei Spam-Bot-Kollegen und versuchen dasselbe. Als User-Agent steht immer „Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)“ drin.

Inhaltlich habe die nicht wirklich was zu bieten, es scheint eher nur ein Test zu sein, ob die Kommentare entgegengenommen werden und wie Links eingefügt werden können. So in etwa sehen die Kommentare aus:

EBuBBk
<a href=\"http://swdjxdiycbec.com/\">swdjxdiycbec</a>,
[url=http://ndnoaqhxujvg.com/]ndnoaqhxujvg[/url],
[link=http://krperquplewf.com/]krperquplewf[/link], 
 http://keejyaqvdysc.com/

Angefangen hat es kurz nach 9 Uhr. Bisher sind gut 300 Spam-Versuche aufgeschlagen, also etwa 100 Zugriffe des obigen Verhaltensmusters. Nur gut, daß dieser Spam-Quark schon an der Türe abgewiesen wird und erst gar nicht in die Spam- oder Moderationsliste von WordPress gelangt.

Ich befürchte, die Bots geben erst Ruhe, wenn sie alle ca. 750 Artikel bei Putzlowitsch abgegrast haben. Und dann komme sie womöglich noch hierher zu Schnurpsel. Hoffentlich merken die bald mal, daß sie dort wie auch hier keine Chance haben, ihren Spam loszuwerden.

Keine Kommentare »

Metaphysik und Müllabfuhr in WordPress 2.9.x

Meta-stase

Durch diese kurze Meldung zu WPMU habe ich erst mitbekommen, daß es in WordPress seit Version 2.9 eine neue Tabelle ‚wp_commentmeta‘ gibt. Für User und Posts gibt es ja schon länger die dazugehörigen Metadaten in wp_usermeta und wp_postmeta. Nun war ich natürlich neugierig, wofür diese neuen Kommentar-Metadaten in WordPress verwendet werden.

Müllabfuhr

MülltonnenEin wichtiger Punkt ist der seit WP 2.9 eingeführte Papierkorb (Trash). Hier werden Artikel, Seiten und auch Kommentare nicht sofort gelöscht, sondern landen zunächst im Papierkorb.

Genau dafür sind diese Metadaten wichtig. Der Trash-Status wird zwar direkt in den Tabellen wp_posts im Feld post_status als ‚trash‘ und wp_comments im Feld comment_approved als ‚trash‘ bzw. ‚post-trashed‘ vermerkt, zusätzlich aber auch in den Metadaten. Neben dem Status wird auch der Zeitpunkt des „Wegwerfens“ in den Mülleimer festgehalten, und dafür gibt es keine Felder in den Post- und Kommentartabellen, dafür werden die Meta-Tabellen auf jeden Fall benötigt. Deshalb gibt es nun eine Tabelle für Comment-Metadaten.

Aber wen interessiert es, wann die Sachen in den Müll gewandert sind? Die WordPress-Müllabfuhr. Die kommt einmal am Tag vorbei und nimmt alles mit, was schon länger als 30 Tage in der Tonne liegt. Man kann ihr aber auch sagen, das sie den Müll schon früher entsorgen soll oder bitte länger liegen läßt. Ein Eintrag in der wp-config.php genügt:

define( 'EMPTY_TRASH_DAYS', 30 );

Die 30 durch die gewünschte Anzahl an Müllvorhaltetage ersetzen.

Metaphorisch

Aber das ist natürlich nicht alles, was man mit den neuen Kommentar-Metadaten machen kann. Genau wie durch die Post-Metadaten bei Artikeln und Seiten ist es nun möglich, nahezu beliebige Daten zu einem Kommentar zu speichern. Der Phantasie sind da kaum Grenzen gesetzt. Denkbar wäre, hier die beliebte Sternchen-Wertung zu einem Kommentar abzuspeichern. Oder ein…, naja, mir fällt im Moment erstmal nichts weiter ein.

Die Funktionen für die Kommentar-Metadaten gibt es genauso wie für Post-Metadaten. Also z.B. update_post_meta -> update_comment_meta, get_post_meta -> get_comment_meta usw. Die Parameter sind praktisch dieselben, außer das dann natürlich nicht die Post-ID, sondern die Comment-ID übergeben wird.

Meta-don

Für Theme- und Pluginentwickler bieten die neuen Comment-Metadaten sicher berauschende Möglichkeiten für ganz neue, tolle und bisher ungeahnte Funktionen mit den WordPress-Kommentaren. :-)

Keine Kommentare »

Spam-Kommentare, die beliebtesten Artikel

Viel Kommentarspam kommt hier ja nicht an. In den Monaten September, Oktober und November waren es insgesamt etwa 600 Versuche, automatisch einen spammigen Kommentar bei einem Artikel oder einer Seite zu hinterlassen. Diese Versuche werden allerdings gleich an der Türe abgebügelt, kommen gar nicht erst bis zur Datenbank und müssen deshalb auch nicht moderiert oder gelöscht werden.

Was mich schon immer interessiert, nach welchen Gesichtspunkten wählen die Spambots Ihre Zielseiten aus. Gibt es irgendein System oder wird einfach zufällig gestreut? Ich habe dashalb alle Spamversuche aus den drei oben genannten Monaten aufsummiert und eine kleine Tabelle erstellt:

Nr Artikel/Seite Spam PR Kom
1 123 Moderate Comment Notification 21,3% 3 3
2 Es geht doch, Kontaktformular mit POST und Permalinks 17,1% 1 3
3 WordPress und die suboptimale MySQL-Optimierung (5.0.51) 14,7% 2 42
4 Privat: 123 MetaBlog 11,9% 2 2
5 WordPress 2.3 – Anonym up-to-date bleiben 5,9% 2 14
6 WordPress 2.3 – Problem ohne www bei Strato 5,2% 2 82

Ich habe nur die Seiten und Artikel berücksichtigt, die 5% oder mehr am Spamaufkommen ausmachen. In der Spalte PR steht der aktuelle Google-Pagerank und in der Spalte Kom die Anzahl der abgegebenen und freigeschalteten Kommentare.

Alle Seiten oder Artikel sind schon mindestens ein Jahr alt. Der Artikel „WordPress 2.7 – Wartungsmodus ohne Plugin“ mit dem höchsten Pagerank (4) gehört mit 0,8% nicht zu den Favoriten der Spambots, allerdings immerhin zwei der Seiten mit den meisten Kommentaren.

Was kann man nun daraus schließen? Nichts, würde ich sagen :-)
Es gibt wohl kein offensichtliches Muster, nachdem sich die Spambots die Artikel aussuchen, zumindest kann ich keins erkennen.

Interessant fand ich allerdings die Tatsache, daß zwar selten, aber ab und zu doch Kommentarspam fast in Echtzeit auftauchte, nur wenige Stunden nach Veröffentlichung eines Artikels. Rekord war dabei mal eine knappe halbe Stunde. Schon erstaunlich.

Keine Kommentare »