Spam in Topkommentaren
In meiner Sidebar benutze ich seit längerer Zeit das Plugin Show Top Commentators. Seit ein paar Tagen nun wird einer der genannten Topkommentatoren automatisch mit einem Spamlink hinterlegt. Der ursprüngliche Link wird überschrieben. Jedoch nur, wenn im Spamordner entsprechender Müll aufgelaufen ist. Lösche ich den Inhalt des Spamordners, erscheint auch wieder der eigentliche Link der Kommentators.
Nachdem immer wieder und in nicht vorhersehbaren Abständen Spam anfällt trifft es also immer wieder zu, dass ggf. über mehrere Stunden hinweg ein Spamlink auf der Startseite gelistet wird.
Ob es nun direkt am Plugin Show Top Commentators liegt oder mit dem Antispam-Plugin zusammenhängt kann ich derzeit nicht sagen. Kennt jemand von Euch dieses Phänomen oder hat eventuell selbst damit zu kämpfen?
Bis ich hierzu eine endgültig Lösung gefunden habe wird anfallender Spam nicht mehr in den Ordner verschoben, sondern sofort gelöscht, in der Hoffnung dass sich kein “guter Kommentar” dazwischen schmuggelt, was bisher zum Glück seltener der Fall war.
[update] 08.09.2009: Mit Unterstützung von Cimddwc konnte das Problem gelöst werden. Der Fehler liegt im Plugin ab Zeile 41. Eine fehlende Datenbankabfrage ermöglichte es Spammern sich in den Topkommentatoren zu verewigen. Die Änderung kann jeder ganz leicht vornehmen.
In der show_top_commentators.php zur Zeile 47 gehen und in einer neuen Zeile folgernde, rotmarkierte Ergänzung (Zeile 4
hinzufügen. Datei abspeichern und mittels FTP auf den Server transferieren. Und schon klappts auch wieder mit den Topkommentaren… ohne Spam-Links.
41Â Â function ns_get_user_url($user) {
42Â Â global $wpdb, $ns_options;
43Â Â $url = $wpdb->get_var("
44Â Â SELECT comment_author_url
45Â Â FROM $wpdb->comments
46Â Â WHERE comment_author_email = '".addslashes($user)."'
47Â Â AND comment_author_url != 'http://'
48Â Â AND comment_approved = '1'
49Â Â $ns_options[filter_urls]
50Â Â ORDER BY comment_date DESC LIMIT 1
51Â Â ");
Diese Artikel mit ähnlichem Inhalt könnten Sie auch interessieren:
Trackback URL zu diesem Artikel | Kommentare zum Artikel als Feed
Datenschutzerklärung und Nutzungsbedingungen werden mit dem Absenden akzeptiert. Erstkommentierer werden wegen der Moderation etwas zeitversetzt freigeschaltet. Danke für`s Verständnis und die Geduld.








7. September 2009
Also ich kenne das Problem nicht. Nutze auch das Plugin “Show Top Commentators”, aber nutze gegen Spam auch lediglich Akismet. Und mir ist das bei mir bisher noch nicht aufgefallen.
Kann dir also nicht so wirklich helfen… leider…
7. September 2009
Ich habe zwar Antispambee im Einsatz, aber daran liegt es nicht wie es scheint. Habe kurzzeitig mal auf Akismet umgestellt… mit dem gleichen Effekt. Sobald Spam aufläuft wird 1 Link bei den Topkommentatoren überschrieben. Bleibt zunächst nur die radikale Löschmethode.
7. September 2009
Japp. Scheint so. Welcher Link denn? Immer der Erste? Oder immer an der gleichen Stelle? Oder immer ein anderer?
7. September 2009
Es ist schon verrückt… betroffen ist immer nur der Wirbelwebber, momentan steht der an drittletzter Stelle. Es macht wirklich den Eindruck, als würde sich der Spam speziell daran festgebissen zu haben. Wieso und warum auch immer.
7. September 2009
Alles schon sehr eigenartig. Das gilt dann aber nicht für seine Kommentare, oder? Also ist der Link in den Kommentaren dann auch auf die Spam-URL?
7. September 2009
Der Link im Kommentar selbst bleibt “sauber”, betroffen ist nur der Link in der Topliste. Schon mehr als eigenartig…
7. September 2009
Ja… erklären kann ich das auch nicht wirklich.
8. September 2009
Da kommentiert der Spammer wohl absichtlich mit dem Namen eines Topkommentatoren, weil das Plugin offenbar auch Spam berücksichtigt, wenn es den Link aus der Datenbank holt. Ich vermute, da fehlt ein “AND comment_approved = 1″ in der Datenbankabfrage…
8. September 2009
@cimddwc: Auf die Idee wäre ich jetzt nicht gekommen… a b e r… eine Überprüfung des Plugins hat ergeben, dass diese Abfrage stattfindet, siehe Ausschnitt:
$commenters = $wpdb->get_results("SELECT COUNT(comment_author) AS comment_comments, comment_author,
comment_author_email
FROM $wpdb->comments o
WHERE $reset_sql
AND comment_author NOT IN($ns_options[filter_users])
AND user_id NOT IN($ns_options[filter_user_ids])
AND comment_author != ''
AND comment_type != 'pingback'
AND comment_approved = '1'
GROUP BY comment_author_email
ORDER BY comment_comments DESC LIMIT $ns_options[limit]
");
Ich lass jetzt mal allen Spam der auf Beiträge älter als 4 Wochen (ist ja zu 99% der Fall) eingeht automatisch löschen. Insoweit ist das Problem so halbwegs gelöst. Denn eigentlich wollte ich die Topkommentatoren nicht aus der Sidebar verbannen. Und eine andere Variante, die das Plugin ersetzen würde kommt mir jetzt nicht in den Sinn (graue Zellen, ich weiß
).
8. September 2009
Da wird die URL (comment_author_url) gar nicht ausgewählt – es muss also noch eine andere Abfrage geben (was das wieder unnötig Datenbank-Last erzeugt…
. Hast du mal schnell einen Link zu dem Plugin-Download?
8. September 2009
Aber klar doch: Show Top Commentators.
8. September 2009
Wie vermutet: In der Funktion ns_get_user_url (Zeile 41) ist die separate URL-Abfrage (mir schleierhaft, warum er das nicht einfach in der Haupt-Abfrage mit einbaut), und da fehlt das “AND comment_approved = 1″.
8. September 2009
@cimddwc: Nachdem ich jetzt das Spamschott einen kleinen Spalt geöffnet habe hat sich gezeigt, dass mit der Änderung ab Zeile 41 das Problem gelöst ist. Trotz Inhalt im Spamordner wird kein Link bei den Topkommentatoren mehr verändert. Besten Dank für Deine Unterstützung, von der ggf. auch andere profitieren können.