WordPress und die IP-Adresse in den Kommentaren

FreePhotosART
Bild: FreePhotosART

Ich hatte mich vor ein paar Tagen über das Thema Cookies in WordPress ausgelassen. Heute will ich den aktuellen Stand im Blog zum Thema „Speichern von Daten“ und der IP-Adresse in den Kommentaren erklären. Gerade dieser Punkt polarisiert das Netz.

Es ist ja so, dass WordPress beim Kommentieren nicht nur den Inhalt des Kommentarformulars speichert, sondern auch Datum/Uhrzeit, die IP-Adresse und man achte und Staune auch den User-Agent. Die Meinung was nun wirklich gebraucht wird und was man davon eigentlich weglassen kann gehen weit auseinander. Im Grunde genommen reicht es wenn man Datum/Uhrzeit, den Namen und den eigentlichen Kommentar besitzt. Mehr wird auch auf der Webseite nicht angezeigt. In der Vergangenheit hatte ich das hier auch so gelöst und nur diese Minimalangaben gespeichert. Ich habe aber meine Meinung geändert und speichere neben diesen Angaben jetzt auch die Mail-, die IP-Adresse und den User-Agent. Die Mail-Adresse wird neben Datum/Uhrzeit, dem Namen, der Webseite und dem eigentlichen Kommentar dauerhaft gespeichert. Die IP-Adresse und den User-Agent lösche ich nach 7 Tagen. Gegen das Speichern der IP-Adresse habe ich mich lange gewehrt. Bin aber jetzt doch zur Überzeugung gekommen, dass das Speichern für einen kurzen Zeitpunkt aus Sicherheitsgründen gut ist.

Screenshot phpMyAdmin
Kommentar-DB meines WordPress Blogs

WordPress bietet in der Standardkonfiguration keine Möglichkeit IP-Adresse und User-Agent zeitgesteuert zu löschen. Auch Plugins, die das leisten sind sehr rar. Ich selbst bin im Plugin-Verzeichnis bei WordPress.org nur auf ein einziges Plugin mit den Namen Remove Comment IPs gestoßen, dass dies leistet. Nachteil: Das Script speichert die Angaben für 60 Tage. Eine Konfiguration ist bei diesem Plugin nicht vorgesehen. Man muss hier schon Hand anlegen und in Zeile 30 die Speicherdauer in Sekunden auf 7 Tage (60 Sekunden * 60 Minuten * 24 Stunden * 7 Tage) ändern. Das Plugin wird beim Schreiben eines Kommentars aktiv und nutzt WordPress-Funktionen um die Werte aus der Datenbank zu löschen.

Mich stört an diesem Plugin dass es beim Kommentarschreiben aktiv wird. Mein Blog gehört nicht zu den Populärsten. Kommentare sind hier eher rar. Dementsprechend würde die Datenbank eher selten bereinigt. Für mich war das das KO-Kriterium für das Plugin. Ein zweites Plugin mit dieser Funktion habe ich nicht gefunden. Was ich jedoch gefunden habe ist ein 12 Jahre altes Plugin auf der Seite Lumières dans la nuit. Man sollte eigentlich so alte Plugin nicht nutzen. Habe ich auch nicht. Zumal auch hier nur bei einem neuen Kommentar bereinigt wird. Ich nutze aus diesem Plugin nur die Funktion zum Bearbeiten der Datenbank. Die passt noch immer!

function delete_comments_ip () {
  global $wpdb;
  $r = $wpdb->query ("
    UPDATE $wpdb->comments
    SET    comment_author_IP = '',
           comment_agent = ''
    WHERE  comment_approved = '1'
    AND    comment_date < date_sub(now(), interval 7 day)
  ");
}

Was die Steuerung dieses Löschvorgangs angeht habe ich mich an Sergej Müllers Toolbox erinnert. Der hatte ein Snippet mit den Namen optimize_db.php veröffentlicht. Er nutzt zur regelmässigen Steuerung die Transient API von WordPress. Ich kenne mich mit dieser API nicht sehr gut aus. Was ich jedoch verstanden habe ist die Tatsache dass diese Transienten eine Ablaufzeit besitzen. Die Einträge werden, wenn die Zeit abgelaufen ist, gelöscht. Dies nutzt nachfolgendes Snippet um einmal am Tag die Löschroutine laufen zu lassen.

if ( ! get_transient('hs_comments_ip') ) {
  set_transient( 'hs_comments_ip', 'doiteveryday', 60 * 60 * 24 );	 
  add_action( 'admin_init', 'delete_comments_ip' );
}

Beides zusammen werkelt hier seit ein paar Tagen im Blog und löscht regelmäßig IP-Adresse und User-Agent der Kommentare aus der DB.

PS: Ich weiß nicht ob das direkte Bearbeiten der DB per PHP-Script eine gute Idee ist. Ich nutze obige Zeilen. Falls ihr die auch nutzen möchtet, dann tut ihr das auf eigene Gefahr!

Schreibe einen Kommentar

Diese Kommentarfunktion sammelt die Daten die im Kommentar-Formular angezeigt werden. Außerdem die IP-Adresse und den User-Agent-String des Besuchers um die Erkennung von Spam zu unterstützen.

Ich bin mit der Speicherung und Verarbeitung meiner Daten durch diese Seite einverstanden *