Pingback چیست؟
Pingback سیستمی در وردپرس است که وقتی سایت دیگری به نوشته شما لینک میدهد، بهصورت خودکار یک اعلان (نظر) در سایت شما ثبت میشود. اگرچه ایده جالبی است، اما در عمل Pingbackها بیشتر به عنوان ابزار اسپم و حملات DDoS سوءاستفاده میشوند.
چرا باید Pingback را غیرفعال کنیم؟
کاهش بار سرور (هر Pingback یک درخواست HTTP ایجاد میکند)، جلوگیری از نظرات اسپم، محافظت در برابر حملات DDoS از طریق XML-RPC، و کاهش اعلانهای بیمورد از دلایل اصلی هستند.
غیرفعال کردن Pingback
روش ۱: از تنظیمات وردپرس
به تنظیمات > گفتوگو بروید. تیک گزینههای «تلاش برای اطلاعرسانی به وبلاگهای لینکشده» و «اجازه اعلان لینک از سایتهای دیگر (pingback و trackback)» را بردارید. ذخیره کنید.
روش ۲: غیرفعال کردن XML-RPC
Pingback از طریق XML-RPC کار میکند. در .htaccess:
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
یا با افزونه Disable XML-RPC.
روش ۳: حذف Pingbackهای موجود
در phpMyAdmin:
DELETE FROM wp_comments WHERE comment_type = 'pingback';
DELETE FROM wp_comments WHERE comment_type = 'trackback';
روش ۴: غیرفعال کردن Self-Pingback
وقتی به نوشته دیگر خود لینک میدهید، وردپرس به خودش Pingback میزند! برای غیرفعال کردن، در functions.php:
function disable_self_pingback(&$links) {
foreach ($links as $l => $link) {
if (0 === strpos($link, get_option('home'))) {
unset($links[$l]);
}
}
}
add_action('pre_ping', 'disable_self_pingback');
برای نوشتههای قدیمی
تنظیمات بالا فقط برای نوشتههای جدید اعمال میشود. برای غیرفعال کردن در نوشتههای قدیمی:
UPDATE wp_posts SET ping_status = 'closed' WHERE post_status = 'publish';
هاست وردپرس میهن هاستینگ با فایروال CSF که حملات XML-RPC را مسدود میکند.