WordPress: Trackback-URL ändern

Don't feed the BotsWährend wir den Wechsel zu F!XMBR 2.0 vollzogen haben, scheint sich mancher Kollege die Technik hier an der einen oder anderen Stelle genauer angesehen zu haben. Ich habe mittlerweile 3 Mails bekommen, mit der Frage, wie wir unsere Trackback-URL ändern, ob es wirkt und ob es dafür ein Plugin gibt. Leider gibt es dafür kein Plugin — nach jedem Update ist also selber Hand anlegen angesagt. Das hält die meisten davon ab, diese Maßnahme einzusetzen, die Ausrede: Man hat ja z. B. mit Aksimet, ein Spam-Tool, welches die Daten eines jeden Kommentieres, mal eben quer durch das Netz jagt, um sie mit dem Server auf wordpress.com zu vergleichen und gegebenfalls als SPAM einzusortieren. Bequemlichkeit halt. Das ist nicht wirklich unser Ding — und so möchte ich hier, auch wenn hier schon besprochen, kurz darlegen, wie die Trackback-URL zu ändern ist, damit die Trackback-SPAM-Quote auf fast Null gefahren wird.

Die große Stärke der Blogs, wenn man es denn so ausdrücken möchte, ist auch deren große Schwäche: Die weltweite Vernetzung. Jede einzelne Verlinkung ist auch gleichzeitig eine Einladung an die Bots dieser Welt, ping mich! Eine schier unendlich offene Flanke, die jeden Kriegsherrn Spammer dieser die Freude im Gesicht stehen lässt. Das Problem ist hausgemacht — und zwar von den Programmierern der verschiedenen Software-Suiten. Bei WordPress ist es im Regelfall so, dass ich an den Permalink nur ein /trackback anhängen muss, und schon habe ich die Trackback-URL und kann diese gezielt ansteuern. Und auch von den anderen Software-Suiten ist die Trackback-URL sicherlich bekannt. Es ist also ein leichtes, einen Bot zu schreiben, der auf eine Webseite losgelassen, jedem Link folgt und gleichzeitig Trackbacks verschickt. Per Trackback oder auch Pingback kommt bei uns so gut wie kein SPAM mehr an — wir ändern schlicht und ergreifend die Trackback-URL, und zwar von permalink\trackback in permalink\track_fixmbr. Wir gehen dabei wie folgt vor:

Suche in der /wp-includes/comment-template.php (Zeile 514) nach:

$tb_url = trailingslashit(get_permalink()) . user_trailingslashit('trackback', 'single_trackback');

Ändere es in:

$tb_url = trailingslashit(get_permalink()) . user_trailingslashit('track_fixmbr', 'single_trackback');

Suche in der /wp-includes/rewrite.php (Zeile 573) nach:

$trackbackregex = 'trackback/?$';

Ändere es in:

$trackbackregex = 'track_fixmbr/?$';

Nun gehen wir ins ACP — Einstellungen — Permalinks und klicken einfach auf Permalink-Struktur aktualisieren und die neue Trackback-URL ist aktiv. Natürlich sollten wir unseren Gästen diese URL mitteilen — wir haben lange überlegt wie wir das anstellen. Denn eines ist klar, geben wir diese in Klartext weiter, nützt die ganze Maßnahme nicht wirklich viel — dann haben die Bots binnen kürzester Zeit wieder die neue Trackback-URL und das SPAM-Bombardement beginnt von neuem. Wir haben dann dank Mithilfe von Carsten die Entscheidung getroffen, die Trackback-URL per Javascript zu verstecken — Bots sind einfach mal blöd und können kein Javascript, und schon ist das Problem gelöst. Der Javascript-Eintrag sieht wie folgt aus.

Öffnet die Datei /wp-content/themes/euer_theme/single.php (oder die sidebar.php, je nachdem, wo Ihr Eure Trackback-URL in Eurem Theme einsetzt) und fügt am Anfang folgenden Code ein:

<script type="text/javascript">
//<![CDATA[
function trackback_spam() {
parentelem = document.getElementById("whateveryouwant");
if (document.getElementById("track_fixmbr")) { remove_spam(); }
var innerelement = document.createElement("textarea");
innerelement.setAttribute("readonly","readonly");
innerelement.setAttribute("id","track_fixmbr");
innerelement.setAttribute("onclick","this.form.track_fixmbr.select(); this.form.track_fixmbr.focus();");
elementtext = document.createTextNode('<?php echo get_permalink() ?>track_fixmbr/');
innerelement.appendChild(elementtext);
parentelem.appendChild(innerelement);
}
function remove_spam() {
var d = document.getElementById("whateveryouwant");
var fixmbr = document.getElementById("track_fixmbr");
d.removeChild(fixmbr);
}
//]]>
</script>

Die Verlinkung zur Trackback-URL sieht dann wie folgt aus:

<a href="javascript:trackback_spam();">Trackback-URL anzeigen lassen (Javascript on)</a>
<form action="#" id="whateveryouwant">
</form>

Damit ist die Trackback-URL geändert und auch verlinkt, unseren Lesern mitgeteilt, Bots bleiben außen vor. Kleinere Nachteile sollen natürlich nicht verschwiegen werden:

  • Javascript ist nicht jedermanns Sache. Muss man auf F!XMBR aber mit leben. Lieber hier F!XMBR in eine Whitlist eintragen, als dass wir Eure Kommentare quer durchs Netz zum Abgleich zu einem (fremden) Server schicken. 😉
  • Manche Leute verlinken die Trackback-URL anstelle sie nur anzupingen, bei Änderung der URL führen manche Links ins Leere. Gut, das kann man nicht ändern — wer so deppert ist, die Trackback-URL zu verlinken, anstelle sie dafür zu nutzen, wozu sie da ist, hat selbst schuld. Die Leute müssen damit leben, dass ihre Links ins Leere laufen.
  • Es muss bei jedem Update neu geändert werden, zumindest die Änderungen in der comment-template.php und der rewrite.php, zudem kann es passieren, wenn Fehler geschehen, dass Trackbacks und Pingbacks gar nicht mehr funktionieren. Das sollte man auch auf jeden Fall nach der Änderung kontrollieren. Lasst Euch einfach von einem befreundeten Blog ein Pingback und ein Trackback schicken.

Und ja, es wirkt — mit der Umbenennung der wp-trackback.php, die Änderung erkläre ich morgen nochmal, haben wir unser SPAM-Aufkommen, was Trackbacks und Pingbacks angeht, gen Null gefahren. Wenn überhaupt, kommen im Monat noch ein oder zwei SPAM-Beiträge durch, die landen dann in der Moderation und werden gelöscht. Einmal ein wenig Arbeit, bei jedem Update zwei kleine Änderungen und man hat Ruhe. Und der wichtigste Punkt: Man schickt die Daten seiner Kommentierer nicht zum Abgleich quer durchs Netz, ich sollte vielleicht nochmal erwähnen: Wir setzen hier kein weiteres SPAM-Tool ein, weder Aksimet noch SPAM-Karma und was es noch alles gibt. Versucht es einfach. :)

Falls es oben Probleme beim Copy & Paste gibt, hier als TXT-Datei. :)

Grafik: Don’t feed the Botsopenclipart.org.

, , ,

6 Antworten zu “WordPress: Trackback-URL ändern”

  1. Samthammel sagt:

    Die Lösung ist gut und werde ich bei steigendem Trackback-Spam zu Rate ziehen.
    Jedoch, ohne kleinlich zu sein, willst du die Mathe-Frage nicht als «weiteres SPAM-Tool» bezeichnen?

  2. Chris sagt:

    Du bist kleinlich. Welche abzulehnende Technik hinter den weiteren SPAM-Tools steckt, habe ich ausführlich beschrieben.

  3. Samthammel sagt:

    Es las sich halt seltsam. :)

  4. […] Ein wundervoller und verblüffend einfacher Tipp gegen die Trackback-Spam in einem WordPress-Blog findet sich heute bei F!XMBR: Trackback-URL ändern. […]

  5. […] dieser Artikel geflissentlich überlesen wird, ich hier darauf hingewiesen habe, wie man die Trackback-URL umbenennen kann, hier nun der Guide, um die wp-trackback.php […]

  6. […] Chris und Oliver von F!XMBR setzen anscheinend sogar sehr erfolgreich bei der Bekämpfung von Trackbackspam auf die simple Umbenennung der Trackbackadresse. So laufen automatisierte Scripte ins Leere. Wenn die Trackback-URL nun auch noch mit JavaScript versteckt wird, ist Trackbackspam als Thema anscheinend schon vergessen. Seit einer Woche habe ich es bereits ausprobiert und bin begeistert. Eine ausführliche Anleitung gibt es bei F!XMBR: WordPress: Trackback-URL ändern. […]

RSS-Feed abonnieren