comment_post_ID 0 (невозможно удалить с панели инструментов)


9

Наткнулся на что-то странное, чего я раньше не видел. Клиент ведет довольно активный блог и использует Akismet (платный) для защиты от спама. По крайней мере, один раз в день они сообщают о спам-комментариях, которые правильно помечены как спам, но не могут быть удалены с панели администратора, щелкая Empty Spamили вручную выбирая запись и пытаясь удалить ее.

Я посмотрел на это и заметил, что в записи БД есть comment_post_IDоф 0, что, как я должен предположить, означает, что оно не прикреплено ни к какому посту. Я, очевидно, могу удалить их вручную из БД (и это работает просто отлично), но не нашел никакой информации о том, что это может быть.

Я заменил основные файлы WP (думая, что это может быть проблемой безопасности), а также заново сгенерировал соли / ключи в wp-config.phpфайле без каких-либо изменений.

Любые мысли будут огромной помощью. Спасибо!

Обновить

Хотя это могло произойти, я не уверен, является ли это результатом взлома InMotion .

Вот что было сделано:

  • Изменены пароли FTP, MySQL
  • Создан новый пользователь БД, назначенный базе данных
  • Обновлены соли / ключи в wp-config.php
  • Изменены все пароли пользователей WP
  • Переустановленные основные файлы WordPress

У Акисмета нет идей по этому поводу (не вините их), так как этот настойчив.


2
Если комментарий опубликован без идентификатора поста, идентификатор устанавливается на «0». Посмотри /wp-comments-post.php. Следующие несколько строк должны уничтожить скрипт, если только у вас нет сообщения с идентификатором '0'. И это озадачивает, поэтому это комментарий, а не попытка ответа.
s_ha_dum

Да - это точно
головокружение

1
Еще одна идея. Захватите IP спаммеров из БД и найдите его в логах сервера. Какой URL запрошен спамером?
Ralf912

1
выполните grep для comment_save_pre и посмотрите, есть ли функция, которая изменяет данные перед их сохранением. Невозможно добавить комментарий без (открытого для комментариев) номера поста, поэтому его можно изменить после получения. Некоторые вопросы: Существуют ли пользовательские типы сообщений, используете ли вы ajax для отправки комментариев (плагинов). Вы используете плагины капчи?
Патриек

1
Привет всем - ценим постоянный интерес к этому. Несколько ответов: Нет плагинов, которые подключаются к одному comment_id_not_foundили другим comment_save_pre(ранее у него был плагин Easy Comment Uploads, но он не опубликован и не может найти оригинальные файлы - теперь с помощью комментариев к изображениям ). Журналы доступа еще не выявили каких-либо совпадений для этих IP-адресов (которые также не совпадают), но поиски подтверждают, что они являются спамом (если это не было очевидно, уже было).
Зак

Ответы:


1

Прости, я не могу комментировать здесь, но я постараюсь помочь.

Функция wp_handle_comment_submission, передающая публикацию комментариев, содержит точную проверку для post_id:

    $post = get_post( $comment_post_ID );

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

т. е. (1) он проходит или (2) комментарий был добавлен, кроме способа размещения комментариев по умолчанию.

Для (1) - проверьте, что запись с id = 0 не существует в таблице db, wp_posts. Иногда сбои в базе данных вызывают наличие таких записей

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.