comment_post_ID 0 (ne peut pas être supprimé du tableau de bord)


9

J'ai traversé quelque chose d'un peu étrange que je n'avais jamais vu auparavant. Un client a un blog assez actif et utilise Akismet (payant) pour se protéger contre le spam. Au moins une fois par jour, ils signalent un commentaire de spam correctement marqué comme spam, mais qui ne peut pas être supprimé du tableau de bord d'administration en cliquant Empty Spamou en sélectionnant manuellement l'entrée et en essayant de la supprimer.

J'ai regardé cela et j'ai remarqué que l'entrée de la base de données a un comment_post_IDde 0, ce que je devrais supposer signifie qu'elle n'est attachée à aucun message. Je peux évidemment les supprimer manuellement de la base de données (et cela fonctionne très bien), mais je n'ai trouvé aucune information sur ce que cela pourrait être.

J'ai remplacé les fichiers WP principaux (pensant que cela pourrait être un problème de sécurité) et j'ai également recréé les sels / clés dans le wp-config.phpfichier sans aucune modification.

Toutes les pensées seraient d'une grande aide. Merci!

Mise à jour

Bien que cela puisse provenir de, je ne sais pas si c'est le résultat du hack InMotion .

Voici ce qui a été fait:

  • FTP, mots de passe MySQL modifiés
  • Nouvel utilisateur DB créé, affecté à la base de données
  • Mise à jour des sels / clés dans wp-config.php
  • Modification de tous les mots de passe des utilisateurs WP
  • Fichiers WordPress de base réinstallés

Akismet est à court d'idées sur celui-ci (ne les blâmez pas) car celui-ci est persistant.


2
Si un commentaire est publié sans ID de publication, l'ID est défini sur «0». Regardez /wp-comments-post.php. Les quelques lignes suivantes devraient cependant tuer le script, sauf si vous avez une publication avec l'ID '0'. Et c'est déroutant, c'est pourquoi il s'agit d'un commentaire et non d'une tentative de réponse.
s_ha_dum

Ouais - celui-ci est un coup de tête à coup sûr
Zach

1
Une autre idée. Saisissez l'adresse IP des spammeurs dans la base de données et recherchez-la dans les journaux du serveur. Quelle URL le spammeur a-t-il demandée?
Ralf912

1
faites un grep sur comment_save_pre et voyez s'il y a une fonction qui modifie les données avant qu'elles ne soient enregistrées. Il n'est pas possible d'ajouter un commentaire sans un numéro de publication (ouvert aux commentaires), il doit donc être modifié après réception. Quelques questions: Existe-t-il des types de publication personnalisés, utilisez-vous ajax pour soumettre des commentaires (plugins). Utilisez-vous des plugins captcha.
Patriek

1
Salut à tous - appréciez l'intérêt continu pour celui-ci. Quelques réponses: Aucun plugin qui se connecte à l'un comment_id_not_foundou à l' autre comment_save_pre(avait un plugin appelé Easy Comment Uploads auparavant, mais n'est pas publié et ne peut pas trouver les fichiers originaux - utilisant maintenant les images de commentaire ). Les journaux d'accès n'ont pas encore révélé de correspondance pour ces adresses IP (qui ne correspondent pas non plus), mais les recherches confirment qu'il s'agit de spam (si cela n'était pas déjà évident ha).
Zach

Réponses:


1

Je suis désolé, je ne peux pas commenter ici, mais je vais essayer de vous aider.

La fonction wp_handle_comment_submission qui transmet les commentaires contient une vérification exacte de post_id:

    $post = get_post( $comment_post_ID );

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

c'est-à-dire (1) qu'il passe à travers, ou (2) un commentaire a été ajouté autre que la manière par défaut de poster des commentaires.

Pour (1) - vérifiez que la publication avec id = 0 n'existe pas dans la table db, wp_posts. Parfois, des échecs dans la base de données entraînent la présence de tels enregistrements

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.