Pingback

Коротко

Протокол автоматического уведомления сайта о том, что на него сослались: блог-источник сам сообщает адресату ссылку, и та появляется в его комментариях.

Что такое «Pingback»

Pingback придумали в начале 2000-х как способ связать блоги между собой: написал запись со ссылкой на коллегу — у коллеги под записью появилась отметка «вас процитировали». В WordPress механизм включён по умолчанию до сих пор и работает в обе стороны: сайт и отправляет уведомления, и принимает их.

Как проходит обмен

  1. Вы публикуете запись со ссылкой на чужую статью.
  2. WordPress открывает ту статью и ищет адрес приёмника — заголовок X-Pingback или тег <link rel="pingback">.
  3. На найденный адрес, обычно xmlrpc.php, уходит запрос pingback.ping с двумя адресами: откуда ссылка и куда.
  4. Принимающий сайт скачивает страницу-источник, проверяет, что ссылка там правда есть, и создаёт комментарий особого типа.

Проверка наличия ссылки — главное отличие от trackback, где ничего не проверяется. Весь обмен идёт через XML-RPC WordPress.

Почему его отключают

Проверка ссылки не спасла от злоупотреблений. Пингбэки стали каналом спама в комментариях, а метод pingback.ping использовали для атак: тысячи сайтов на WordPress по команде злоумышленника одновременно запрашивали страницу жертвы. Ещё одна мелкая досада — самопингбэки: ссылаясь на свою же старую запись, вы получаете под ней служебный комментарий.

Как выключить

В «Настройках → Обсуждение» снимают две галочки: «Пытаться оповестить блоги, упоминаемые в статье» и «Разрешить оповещения с других блогов». Это действует на новые записи; у старых пингбэки закрываются в настройках обсуждения каждой записи или массово. Чтобы сайт не принимал запросы совсем, метод убирают из XML-RPC:

add_filter( 'xmlrpc_methods', function ( $methods ) {
    unset( $methods['pingback.ping'] );
    return $methods;
} );

add_filter( 'wp_headers', function ( $headers ) {
    unset( $headers['X-Pingback'] );
    return $headers;
} );

Второй фильтр убирает заголовок X-Pingback из ответов сервера, чтобы сайт не объявлял адрес приёмника.

Обновлено:

Все термины раздела «WordPress»

Что будем искать? Например,Продвижение