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 Spam
ou 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_ID
de 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.php
fichier 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.
/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.comment_id_not_found
ou à l' autrecomment_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).Réponses:
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:
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
la source