comment_post_ID 0 (không thể xóa khỏi bảng điều khiển)


9

Chạy ngang qua một cái gì đó hơi kỳ lạ mà tôi chưa từng thấy trước đây. Một khách hàng có một blog khá tích cực và sử dụng Akismet (trả phí) để bảo vệ chống spam. Ít nhất một lần một ngày, họ đang báo cáo nhận xét spam được đánh dấu chính xác là spam, nhưng không thể xóa khỏi bảng điều khiển quản trị bằng cách nhấp Empty Spamhoặc chọn thủ công mục nhập và cố gắng xóa nó.

Tôi nhìn vào trong này và nhận thấy rằng mục DB có comment_post_IDcủa 0, mà tôi sẽ phải giả định phương tiện nó không được gắn vào bất kỳ đường bưu điện. Tôi rõ ràng có thể xóa hướng dẫn sử dụng chúng khỏi DB (và nó hoạt động tốt), nhưng không tìm thấy bất kỳ thông tin nào về việc này có thể là gì.

Tôi đã thay thế các tệp WP lõi (nghĩ rằng đó có thể là vấn đề bảo mật) và cũng tạo lại các muối / khóa trong wp-config.phptệp mà không có bất kỳ thay đổi nào.

Bất kỳ suy nghĩ sẽ là một trợ giúp rất lớn. cảm ơn!

Cập nhật

Mặc dù điều này có thể xuất phát từ, tôi không chắc liệu đó có phải là kết quả của vụ hack InMotion hay không .

Đây là những gì đã được thực hiện:

  • Thay đổi mật khẩu FTP, MySQL
  • Đã tạo người dùng DB mới, được gán cho cơ sở dữ liệu
  • Cập nhật muối / chìa khóa trong wp-config.php
  • Đã thay đổi tất cả mật khẩu người dùng WP
  • Cài đặt lại các tệp WordPress lõi

Akismet không có ý tưởng về cái này (đừng đổ lỗi cho chúng) vì cái này là dai dẳng.


2
Nếu một bình luận được đăng mà không có ID bài đăng, ID được đặt thành '0'. Nhìn vào /wp-comments-post.php. Một vài dòng tiếp theo sẽ giết tập lệnh, trừ khi bạn có một bài đăng có ID '0'. Và đó là khó hiểu, đó là lý do tại sao đây là một nhận xét và không phải là một nỗ lực để trả lời.
s_ha_dum

Vâng - đây chắc chắn là một người gãi đầu
Zach

1
Một ý tưởng khác. Lấy IP của kẻ gửi thư rác từ DB và tìm kiếm nó trong nhật ký máy chủ. Những url nào có spammer yêu cầu?
Ralf912

1
thực hiện một grep trên comment_save_pre và xem liệu có một chức năng làm thay đổi dữ liệu trước khi nó được lưu hay không. Không thể thêm một bình luận mà không có số bài đăng (mở để bình luận), vì vậy nó có thể được thay đổi sau khi tiếp nhận. Một số câu hỏi: Có loại bài đăng tùy chỉnh không, bạn có sử dụng ajax để gửi nhận xét (plugin) không. Bạn đang sử dụng plugin captcha.
Patriek

1
Hi tất cả - đánh giá cao sự quan tâm tiếp tục trong này. Một vài phản ứng: Không có plugin mà móc vào một trong hai comment_id_not_foundhoặc comment_save_pre(đã có một plugin gọi là Easy Comment ơn trước đây, nhưng là chưa được công bố và không thể tìm thấy file gốc - bây giờ sử dụng Comment Images ). Nhật ký truy cập vẫn chưa tiết lộ bất kỳ kết quả trùng khớp nào cho các địa chỉ IP này (cũng không khớp), nhưng các tìm kiếm xác nhận chúng là thư rác (nếu điều đó không rõ ràng ha).
Zach

Câu trả lời:


1

Tôi xin lỗi không thể bình luận ở đây nhưng tôi sẽ cố gắng giúp đỡ.

wp_handle_comment_submission chức năng gửi bình luận gửi bài kiểm tra chứa chính xác cho post_id:

    $post = get_post( $comment_post_ID );

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

tức là (1) nó đi qua, hoặc (2) bình luận đã được thêm vào ngoài cách đăng bình luận mặc định.

Đối với (1) - kiểm tra xem bài đăng có id = 0 không tồn tại trong bảng db, wp_posts. Đôi khi thất bại trong cơ sở dữ liệu gây ra sự hiện diện của các hồ sơ như vậy

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.