Pingback schädlich

Meine Website läuft zwar mit WordPress, aber Pingback & Trackback habe ich seit der offziellen Inbetriebnahme komplett ausgeschaltet.

Einer der Gründe, siehe hier: „Blogger unter Beschuss – Pingback missbraucht“ (heise) und hier: Meldung bei sucuri.net (Englisch)

Zur Erläuterung:

Wenn ein Autor auf einer Website A einen Beitrag schreibt und darin einen Link auf einen Beitrag von Website B nennt, wird ein „Pingback“ von A nach B geschickt als Hinweis „ich habe deinen Beitrag bei mir verlinkt“. Website B prüft dann wiederum durch eine Anfrage bei A, ob der Link tatsächlich vorhanden ist und trägt dann den Pingback bei sich ein. Solche Einträge erscheinen bei WordPress als Teil der Kommentare.

Genau dieser Ablauf wird von Angreifern missbraucht, indem sie gefälschte Pingback-Anfragen an Websites schicken, auf denen WordPress genutzt wird, die dann wiederum mit einer Rückfrage bei der vermeintlichen Quelle reagieren.

Pingback & Trackback in WordPress dauerhaft abschalten

Die erste Maßnahme sollte sein, die entsprechende Funktion im Backend auszuschalten:

WordPress-Einstellungen für Diskussionen

Damit wird allerdings nur dafür gesorgt, dass Pingback-Anfragen für neue Beiträge und Seiten standardmäßig abgeschaltet sind. Bereits bestehende Beiträge und Seiten erlauben Pingback möglicherweise noch und müssen zusätzlich geändert werden. Wem das im Backend zu umständlich ist, der kann auch folgende SQL-Statements dafür ausführen:

UPDATE wp_posts SET ping_status='closed'
WHERE post_status = 'publish' AND post_type = 'post';

UPDATE wp_posts SET ping_status='closed'
WHERE post_status = 'publish' AND post_type = 'page';

Wichtig: Änderungen an der Datenbank auf eigene Gefahr und nur nach vorheriger Datensicherung!

Allerdings erzeugt WordPress dann immer noch den verräterischen „X-Pingback“-HTTP-Header, der signalisiert, dass Pingback grundsätzlich möglich ist. Um diesen Header auch noch loszuwerden, kann man folgenden Code verwenden, wahlweise in der functions.php des aktiven Theme oder in einem eigenen Plugin:

function my_customheaders($headers) {
	if(isset($headers['X-Pingback'])) unset($headers['X-Pingback']);
	return $headers;
}
add_filter('wp_headers', 'my_customheaders');

Zur Überprüfung kann man beispielsweise in Firefox das Add-on „Firebug“ verwenden um die Response-Header bei einem Zugriff auf die eigene Website zu sehen. Alternativ kann man die Prüfung auch über http://web-sniffer.net durchführen.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.