Zum Inhalt springen

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 48) 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     ");

Schlagwörter:

13 Gedanken zu „Spam in Topkommentaren“

  1. 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…

    1. 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.

    1. 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.

  2. 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…

    1. @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ß :grin: ).

  3. 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?

  4. 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“.

    1. @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.

Schreibe einen Kommentar zu cimddwc Antworten abbrechen

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

Du kannst Dich informieren lassen wenn es Folgekommentare gibt. Du kannst aber auch abonnieren ohne zu kommentieren.