Spam eindämmen mit Trackback Validation
An sich halte ich das System der Trackbacks für eine gute Sache. Eine Funktion des Trackbacks, ist in der Blogosphäre jedoch sehr umstritten, weil sie einerseits zwar Spam verhindert aber andererseits auch die fortschreitenden Assoziationen der Blogosphäre schwächt.
Diese Funktion nennt sich Trackback Validation und bewirkt, dass ein Artikel nur Trackbacks von dem bezugnehmenden Artikel eines anderen Weblogs empfängt, wenn in diesem auch ein Link auf den Ursprungsartikel enthalten ist. Die meisten Softwareprodukte, welche zur Verwaltung von Weblogs eingesetzt werden, implementieren dieses Verhalten standardmäßig in ihre Trackback Komponenten.
Sehr wenige Softwareprodukte hingegen implementieren die Trackback-Funktionalität so, wie es die offizielle Trackback-Spezifikation vorsieht, und zwar ohne eine automatisierte Filterung von empfangenen Trackbacks. Das Content Management System Drupal ist eines dieser besagten Produkte.
Leider exisiert kein Modul, welches das vorhandene Trackback Modul in Drupal um die Funktionalitäten der Trackback Validation erweitert. Will man trotzdem in den Genuss kommen müssen lediglich einige Änderungen in der Datei modules/trackback/trackback.module vollzogen werden. Dazu wird eine Funktion in die Datei eingefügt, welche auf der bezugnehmenden Seite nach der verlinkten URL der Artikelseite sucht.
/** * Sanity-checks trackback by making sure the URL contains link back */ function trackback_sanity_check_link($url, $timeout = 30) { global $base_url; // Fetch trackback link page (using timeout) $c = curl_init(); curl_setopt($c,CURLOPT_URL,$url); curl_setopt($c,CURLOPT_HEADER,0); curl_setopt($c,CURLOPT_FOLLOWLOCATION,1); curl_setopt($c,CURLOPT_RETURNTRANSFER,1); curl_setopt($c,CURLOPT_TIMEOUT, $timeout); $data=curl_exec($c); curl_close($c); // If page contains base_url return TRUE return stripos($data,$base_url)!==FALSE; }
Anschließend wird die schon vorhandenene Funktion trackback_receive am Anfang mit einer kleinen Abfrage ausgestattet, welche den Link des Trackbacks, mittels der neuen Funktion, auf einen Backlink überprüft.
if (!trackback_sanity_check_link($trackback->url)) { if (!module_invoke('throttle', 'status')) { sleep(variable_get('spam_ip_filter_sleep', 30)); } return; }
Ich hoffe dass ich durch die Verwendung dieser Funktion dem massiven Trackback-Spam entgegenwirken kann ohne damit nachhaltig der Blogosphäre zu schaden. ^^
Update: Mir wurde soeben über die Kommentarfunktion von jemandem mitgeteilt, dass er ein Trackback Validation Modul für Drupal veröffentlicht hat.







Kommentare
Klar gibt es da etwas!
Trackback-Spam war mir ebenso ein Dorn im Auge. Das von Dir skizzierte Verfahren habe ich schon Anfang diesen Jahres (in verfeinerter Form) implementiert.
Den Patch für das Trackback-Modul sowie das zugehörige Erweiterungsmodul von mir findest Du auf meiner Drupal-Seite.
Post new comment