comment_post_ID 0 (tidak dapat menghapus dari dasbor)


9

Berlari melintasi sesuatu yang agak aneh yang belum pernah saya lihat sebelumnya. Seorang klien memiliki blog yang cukup aktif dan menggunakan Akismet (berbayar) untuk melindungi dari spam. Setidaknya sekali sehari, mereka melaporkan komentar spam yang ditandai dengan benar sebagai spam, tetapi tidak dapat dihapus dari dasbor admin dengan mengklik Empty Spamatau secara manual memilih entri dan mencoba menghapusnya.

Aku melihat ke dalam ini dan melihat bahwa masuknya DB memiliki comment_post_IDdari 0, yang aku harus menganggap cara itu tidak terikat pada posting apapun. Saya jelas dapat menghapusnya secara manual dari DB (dan berfungsi dengan baik), tetapi belum menemukan informasi apa pun tentang hal ini.

Saya telah mengganti file-file inti WP (berpikir itu mungkin masalah keamanan) dan juga menghasilkan kembali garam / kunci dalam wp-config.phpfile tersebut tanpa perubahan apa pun.

Pikiran apa pun akan sangat membantu. Terima kasih!

Memperbarui

Meskipun ini berasal dari, saya tidak yakin apakah ini adalah hasil dari hack InMotion .

Inilah yang telah dilakukan:

  • Mengubah FTP, kata sandi MySQL
  • Membuat pengguna DB baru, ditugaskan ke basis data
  • Garam / kunci yang diperbarui wp-config.php
  • Mengubah semua kata sandi pengguna WP
  • Menginstal ulang file inti WordPress

Akismet kehabisan ide tentang yang satu ini (jangan salahkan mereka) karena yang ini gigih.


2
Jika komentar diposting tanpa ID pos, ID diatur ke '0'. Lihat /wp-comments-post.php. Namun, beberapa baris berikutnya akan mematikan skrip, kecuali Anda memiliki kiriman dengan ID '0'. Dan itu membingungkan, itulah sebabnya ini adalah komentar dan bukan upaya jawaban.
s_ha_dum

Ya - yang ini kepala-scratcher pasti
Zach

1
Ide lain. Ambil IP spammer dari DB dan mencarinya di log server. URL mana yang diminta oleh spammer?
Ralf912

1
lakukan grep di comment_save_pre dan lihat apakah ada fungsi yang mengubah data sebelum disimpan. Tidak mungkin untuk menambahkan komentar tanpa nomor posting (terbuka untuk komentar), sehingga harus diubah setelah penerimaan. Beberapa pertanyaan: Apakah ada tipe posting khusus, apakah Anda menggunakan ajax untuk mengirim komentar (plugin). Apakah Anda menggunakan plugin captcha.
Patriek

1
Hai semua - hargai minat yang berkelanjutan pada yang satu ini. Beberapa tanggapan: Tidak ada plugin yang menghubungkan ke salah satu comment_id_not_foundatau comment_save_pre(memang memiliki plugin yang disebut Easy Comment Uploads sebelumnya, tetapi tidak diterbitkan dan tidak dapat menemukan file asli - sekarang menggunakan Gambar Komentar ). Log akses belum mengungkapkan kecocokan untuk alamat IP ini (yang juga tidak cocok), tetapi pencarian mengonfirmasi bahwa itu adalah spam (jika itu sudah jelas tidak ada).
Zach

Jawaban:


1

Maaf saya tidak dapat berkomentar di sini, tetapi saya akan mencoba membantu.

Fungsi wp_handle_comment_submission yang menyerahkan komentar postingan berisi pemeriksaan yang tepat untuk post_id:

    $post = get_post( $comment_post_ID );

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

yaitu (1) melewati, atau (2) komentar ditambahkan selain cara standar untuk mengirim komentar.

Untuk (1) - periksa bahwa tulisan dengan id = 0 tidak ada dalam tabel db, wp_posts. Terkadang kegagalan dalam database menyebabkan catatan seperti itu

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.