comment_post_ID 0 (kann nicht aus dem Dashboard entfernt werden)


9

Bin auf etwas Seltsames gestoßen, das ich noch nie gesehen habe. Ein Kunde hat ein ziemlich aktives Blog und verwendet Akismet (kostenpflichtig), um sich vor Spam zu schützen. Mindestens einmal am Tag melden sie einen Spam-Kommentar, der korrekt als Spam markiert ist, aber nicht aus dem Administrator-Dashboard entfernt Empty Spamwerden kann, indem Sie auf den Eintrag klicken oder ihn manuell auswählen und versuchen, ihn zu löschen.

Ich habe mir das angeschaut und festgestellt, dass der DB-Eintrag ein comment_post_IDvon hat 0, was ich annehmen muss, dass er keinem Beitrag zugeordnet ist. Ich kann sie natürlich manuell aus der Datenbank entfernen (und es funktioniert einwandfrei), habe aber keine Informationen darüber gefunden, was dies sein könnte.

Ich habe die Kern-WP-Dateien ersetzt (ich denke, es könnte sich um ein Sicherheitsproblem handeln) und auch die Salze / Schlüssel in der wp-config.phpDatei ohne Änderung neu generiert .

Alle Gedanken wären eine große Hilfe. Vielen Dank!

Aktualisieren

Obwohl dies möglicherweise darauf zurückzuführen ist, bin ich mir nicht sicher, ob es das Ergebnis des InMotion-Hacks ist .

Folgendes wurde getan:

  • Geänderte FTP- und MySQL-Passwörter
  • Erstellt einen neuen DB-Benutzer, der der Datenbank zugewiesen ist
  • Aktualisierte Salze / Schlüssel in wp-config.php
  • Alle WP-Benutzerkennwörter wurden geändert
  • Neu installierte WordPress-Kerndateien

Akismet hat keine Ideen mehr für diese (beschuldigen Sie sie nicht), da diese hartnäckig ist.


2
Wenn ein Kommentar ohne Post-ID gepostet wird, wird die ID auf '0' gesetzt. Schau rein /wp-comments-post.php. Die nächsten Zeilen sollten das Skript jedoch beenden, es sei denn, Sie haben einen Beitrag mit der ID '0'. Und das ist rätselhaft, weshalb dies ein Kommentar und kein Versuch einer Antwort ist.
s_ha_dum

Ja - das hier ist sicher ein
Zach

1
Eine andere Idee. Holen Sie sich die IP-Adresse des Spammers aus der Datenbank und suchen Sie sie in den Serverprotokollen. Welche URL hat der Spammer angefordert?
Ralf912

1
Führen Sie einen Kommentar zu comment_save_pre durch und prüfen Sie, ob es eine Funktion gibt, die die Daten ändert, bevor sie gespeichert werden. Es ist nicht möglich, einen Kommentar ohne eine (für Kommentare offene) Beitragsnummer hinzuzufügen, daher muss diese nach dem Empfang geändert werden. Einige Fragen: Gibt es benutzerdefinierte Beitragstypen? Verwenden Sie Ajax, um Kommentare (Plugins) einzureichen. Verwenden Sie Captcha-Plugins?
Patriek

1
Hallo allerseits - schätze das anhaltende Interesse an diesem. Einige Antworten: Keine Plugins, die sich in eines comment_id_not_foundoder comment_save_preeinbinden (hatten zuvor ein Plugin namens Easy Comment Uploads, sind jedoch unveröffentlicht und können keine Originaldateien finden - jetzt mit Kommentarbildern ). Die Zugriffsprotokolle haben noch keine Übereinstimmungen für diese IP-Adressen angezeigt (die ebenfalls nicht übereinstimmen), aber Suchanfragen bestätigen, dass es sich um Spam handelt (falls dies nicht bereits offensichtlich war, ha).
Zach

Antworten:


1

Es tut mir leid, dass ich hier keinen Kommentar abgeben kann, aber ich werde versuchen zu helfen.

wp_handle_comment_submission Funktion zum Übergeben von Kommentaren Das Posten enthält eine genaue Prüfung für post_id:

    $post = get_post( $comment_post_ID );

    if ( empty( $post->comment_status ) ) {
         ...
       return error_happened; 
    }

dh (1) es wird durchlaufen oder (2) ein Kommentar wurde hinzugefügt, der nicht der Standardmethode zum Posten von Kommentaren entspricht.

Für (1) - Überprüfen Sie, ob der Beitrag mit der ID = 0 nicht in der Tabelle db, wp_posts vorhanden ist. Manchmal führen Fehler in der Datenbank zum Vorhandensein solcher Datensätze

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.