15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать
21.10.2024
11 +1

Трекбэки и пингбэки в WordPress: что это такое, как они работают и стоит ли их использовать

Трекбэки и пингбэки — это протоколы межблоговых уведомлений WordPress, которые автоматически или вручную оповещают упомянутый сайт, когда другой ресурс ссылается на его контент. Пингбэк полностью автоматизирован — WordPress отправляет и проверяет его без какого-либо участия пользователя. Трекбэк является полуручным — автор должен указать URL конечной точки трекбэка целевого блога, а уведомление содержит краткий отрывок из публикации со ссылкой.

Оба механизма были разработаны для создания децентрализованного уровня общения в раннем блогосфере. На практике оба стали основными векторами спама в комментариях, и большинство рабочих сайтов на WordPress полностью отключают их. Понимание того, как именно работает каждый протокол, а также конкретных последствий для безопасности и SEO при их активном использовании, необходимо перед принятием этого решения.

Техническая архитектура каждого протокола

Как работают трекбэки изнутри

Трекбэк — это HTTP POST-запрос, отправляемый на конкретный URL трекбэка, предоставляемый целевым блогом. Полезная нагрузка представляет собой простое тело в формате form-encoded, содержащее четыре поля: title, url, blog_name и excerpt. Принимающий сервер анализирует эти поля и, если они одобрены, отображает отрывок в виде записи, похожей на комментарий, к упомянутой публикации.

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

Необработанный POST-запрос трекбэка выглядит следующим образом:

curl -X POST https://example.com/wp-trackback.php?p=42 
  -d "title=My+Post+Title" 
  -d "url=https://attacker.com/fake-post" 
  -d "blog_name=Legitimate+Looking+Blog" 
  -d "excerpt=This+is+a+fabricated+excerpt."

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

Как работают пингбэки изнутри

Пингбэки используют XML-RPC в качестве транспортного уровня, а именно метод pingback.ping, определённый в спецификации Pingback 1.0. Когда вы публикуете запись, содержащую внешнюю ссылку, WordPress вызывает pingback.ping на целевом сервере, передавая два аргумента: URL вашей публикации (источник) и URL связанной страницы (цель).

Затем принимающий сервер выполняет критически важный шаг, который трекбэки полностью пропускают: он получает исходный URL и подтверждает, что ссылка на цель действительно существует в HTML страницы. Только после этой проверки пингбэк фиксируется.

<?xml version="1.0"?>
<methodCall>
  <methodName>pingback.ping</methodName>
  <params>
    <param><value><string>https://yoursite.com/your-post/</string></value></param>
    <param><value><string>https://targetsite.com/their-post/</string></value></param>
  </params>
</methodCall>

Эта проверка делает пингбэки сложнее для подделки, чем трекбэки, но вводит другую уязвимость: Server-Side Request Forgery (SSRF). Злоумышленник может создать пингбэк, который вынуждает целевой сервер обращаться к произвольному внутреннему URL — включая http://127.0.0.1/wp-admin/ или конечные точки метаданных облака, такие как http://169.254.169.254/ — фактически используя стек XML-RPC WordPress в качестве прокси.

Трекбэки и пингбэки: сравнение бок о бок

ХарактеристикаТрекбэкПингбэк
ИнициацияРучная (автор вставляет URL конечной точки)Автоматическая (запускается при публикации)
Транспортный протоколHTTP POST (form-encoded)XML-RPC (`pingback.ping`)
Проверка ссылкиОтсутствуетДа — сервер получает исходный URL
Содержит отрывокДаНет (только ссылка)
Защита от спамаОчень низкаяНизкая (вместо этого риск SSRF)
Оба сайта должны поддерживатьНетДа
Всё ещё широко используетсяНетРедко
Основной риск безопасностиВнедрение поддельного контентаSSRF / усиление DDoS

Как включить или отключить трекбэки и пингбэки в WordPress

Глобальная настройка через панель управления

Самый быстрый способ управлять обоими протоколами на уровне всего сайта — через настройки обсуждений WordPress:

  1. Войдите в панель администратора WordPress.
  2. Перейдите в раздел Настройки > Обсуждение.
  3. В разделе Настройки статей по умолчанию найдите флажок с надписью «Разрешить уведомления о ссылках с других блогов (пингбэки и трекбэки)».
  4. Снимите флажок, чтобы отключить оба протокола глобально, затем нажмите Сохранить изменения.

Эта настройка применяется только к публикациям, созданным после внесения изменений. Она не отключает ретроактивно пингбэки и трекбэки для существующих публикаций.

Управление на уровне отдельной публикации

Для управления уведомлениями в конкретной публикации:

  1. Откройте публикацию в блочном редакторе.
  2. На правой боковой панели прокрутите до раздела Обсуждение. Если он не отображается, откройте Параметры экрана (в правом верхнем углу) и включите флажок «Обсуждение».
  3. Снимите флажок Разрешить пингбэки и трекбэки.
  4. Обновите или опубликуйте запись.

Массовое отключение для всех существующих публикаций через SQL

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

UPDATE wp_posts
SET ping_status = 'closed'
WHERE post_status = 'publish'
  AND post_type = 'post';

Замените wp_ на ваш фактический префикс таблицы, если он отличается. Это закрывает статус пинга для каждой опубликованной записи за одну операцию.

Блокировка конечной точки XML-RPC на уровне сервера

Отключение пингбэков в настройках WordPress по-прежнему оставляет конечную точку xmlrpc.php доступной. Для полной защиты заблокируйте её на уровне веб-сервера.

Apache — добавьте в .htaccess или конфигурацию вашего виртуального хоста:

<Files xmlrpc.php>
  Order Deny,Allow
  Deny from all
</Files>

Nginx — добавьте внутри блока server {}:

location = /xmlrpc.php {
    deny all;
    return 403;
}

Блокировка xmlrpc.php также нейтрализует вектор атаки усиления DDoS через XML-RPC, при котором злоумышленники отправляют тысячи запросов пингбэков на сайт WordPress, каждый из которых заставляет сервер выполнять исходящие HTTP-запросы — фактически превращая ваш сервер в невольного участника распределённой атаки.

Если вы запускаете WordPress на плане VPS Хостинга, у вас есть полный root-доступ для непосредственного внедрения этих правил на уровне сервера. В общих средах вместо этого может потребоваться .htaccess или плагин безопасности.

Риски безопасности, которые нельзя игнорировать

Усиление DDoS через пингбэки

Поскольку pingback.ping заставляет принимающий сервер выполнять исходящий HTTP-запрос, ботнет может отправлять десятки тысяч запросов пингбэков на уязвимый сайт WordPress, каждый из которых предписывает ему получить URL жертвы. Сервер WordPress становится усилителем. Этот паттерн атаки был подробно задокументирован ещё в 2014 году и остаётся актуальным везде, где открыт xmlrpc.php.

SSRF через пингбэк

На облачных установках WordPress — включая работающие на VPS Хостинге или Выделенных серверах — злоумышленник может отправить пингбэк, в котором исходный URL указывает на внутренний сетевой адрес. Если сервер не защищён брандмауэром на уровне гипервизора или VPC, запрос проверки пингбэка может достичь:

  • http://127.0.0.1/wp-admin/ — зондирование внутренних административных интерфейсов
  • http://169.254.169.254/latest/meta-data/ — метаданные экземпляра AWS EC2
  • Внутренних конечных точек базы данных или кэша

Для устранения этой угрозы необходимо как заблокировать xmlrpc.php, так и убедиться, что правила исходящего брандмауэра вашего сервера запрещают запросы к диапазонам адресов RFC 1918 и link-local.

Спам через трекбэки и засорение комментариев

Поскольку трекбэки не проходят верификацию, ими легко злоупотреблять. Одна спам-кампания может внедрить сотни поддельных трекбэков в вашу очередь комментариев, каждый из которых ссылается на сайты распространения вредоносного ПО, фармацевтический спам или фишинговые страницы. Даже при включённой модерации объём может перегрузить администраторов сайта и снизить соотношение сигнал/шум среди легитимных комментариев.

Реальность SEO для трекбэков и пингбэков в 2024 году

Когда эти протоколы разрабатывались в начале 2000-х годов, любая обратная ссылка несла значимый сигнал PageRank. С тех пор алгоритм Google существенно эволюционировал. Сейчас применяются следующие реалии:

  • Самореференциальные пингбэки (WordPress, пингующий собственные внутренние ссылки) генерируют ссылки в комментариях с тегом nofollow, которые не несут никакой ценности PageRank.
  • Ссылки трекбэков, появляющиеся в разделах комментариев, в современных темах WordPress почти повсеместно помечены nofollow, то есть не передают никакого ссылочного веса.
  • Трекбэки, сгенерированные спамом, если они случайно одобрены, могут связать ваш домен с низкокачественными или попавшими под санкции сайтами — что является чистым минусом для вашего авторитетного профиля.
  • Система Google SpamBrain эффективно выявляет и обесценивает паттерны ссылок, исходящих из разделов комментариев, включая ссылки, сгенерированные трекбэками.

Практическая SEO-ценность включения любого из протоколов для большинства сайтов фактически равна нулю. Риск заражения спамом и угрозы безопасности — нет.

Когда трекбэки и пингбэки всё ещё имеют законное применение

Существуют узкие сценарии, в которых эти функции сохраняют ценность:

  • Закрытые, частные сети блогов (интранеты, академические издательские платформы), где все участвующие сайты являются доверенными и спам не является проблемой.
  • Интеграции с устаревшими CMS, где партнёрская платформа поддерживает только пингбэк в качестве механизма уведомлений, а современная альтернатива на основе вебхуков недоступна.
  • Отладка и исследование протоколов — понимание того, как работает поток пингбэков XML-RPC, ценно при аудите конфигураций безопасности WordPress.

За пределами этих контекстов функции следует отключить.

Настройки обсуждений WordPress и лучшие практики модерации комментариев

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

  • Включите Модерацию комментариев, чтобы ни один пингбэк не появлялся публично без ручного одобрения (Настройки > Обсуждение > Перед появлением комментария > Комментарий должен быть одобрен вручную).
  • Добавьте известные спам-домены в список Запрещённых ключевых слов комментариев в разделе Настройки > Обсуждение.
  • Установите плагин фильтрации спама (Akismet является наиболее широко используемым) для автоматической пометки спама в трекбэках и пингбэках до того, как он попадёт в вашу очередь модерации.
  • Регулярно проверяйте очередь комментариев. Одобренные спам-трекбэки сложнее очистить ретроактивно, чем заблокированные.

Для сайтов, работающих в управляемых средах WordPress или на VPS с cPanel, правила ModSecurity в cPanel могут добавить дополнительный уровень фильтрации против некорректных XML-RPC-запросов до того, как они достигнут прикладного уровня WordPress.

Практическая матрица принятия решений

Используйте этот контрольный список для определения правильной конфигурации вашего сайта:

Отключите оба протокола — трекбэки и пингбэки — если:

  • Ваш сайт общедоступен и получает какой-либо объём органического трафика
  • У вас нет выделенного рабочего процесса модерации комментариев
  • Вы запускаете WordPress на общем или облачном сервере без блокировки XML-RPC на уровне сервера
  • У вас нет установленных отношений с другими блогами, которые полагаются на эти протоколы

Рассмотрите возможность оставить пингбэки включёнными только если:

  • Все ссылающиеся сайты известны, являются доверенными и находятся в контролируемой сети
  • У вас настроена модерация комментариев с ручным одобрением
  • xmlrpc.php защищён белым списком IP-адресов или HTTP-аутентификацией на уровне сервера
  • Вы подтвердили, что ваша хостинговая среда не уязвима к SSRF через исходящие HTTP-запросы

Всегда выполняйте независимо от вашего выбора:

  • Запустите приведённый выше SQL-запрос для закрытия статуса пинга для всех существующих публикаций
  • Заблокируйте xmlrpc.php на уровне веб-сервера, если вы не используете XML-RPC для каких-либо других целей (REST API является современной заменой для мобильных приложений и удалённой публикации)
  • Проверьте существующую очередь комментариев на наличие ранее одобренных спам-трекбэков

Для сайтов, которым необходима надёжная инфраструктура для реализации этих элементов управления на уровне сервера, Выделенные серверы обеспечивают полный доступ на уровне сети и ОС, необходимый для применения правил брандмауэра, блокировки конкретных конечных точек и мониторинга попыток исходящих подключений от процесса веб-сервера.

FAQ

Трекбэки и пингбэки — это одно и то же?

Нет. Трекбэки — это ручные HTTP POST-уведомления, которые содержат отрывок и не выполняют проверку ссылки. Пингбэки — это автоматизированные вызовы XML-RPC, которые проверяют, что публикация со ссылкой действительно содержит упомянутый URL, прежде чем зафиксировать уведомление. Они преследуют одну цель, но используют разные протоколы с разными профилями безопасности.

Помогают ли трекбэки и пингбэки с SEO?

Не каким-либо значимым образом. Ссылки, генерируемые этими механизмами, появляются в разделах комментариев и по умолчанию помечены nofollow в WordPress, то есть не передают PageRank. Трекбэки, сгенерированные спамом, могут активно навредить авторитету вашего сайта, связывая его с низкокачественными доменами.

Могу ли я отключить пингбэки, не отключая весь XML-RPC API?

Да. Вы можете отключить пингбэки конкретно через Настройки > Обсуждение или путём фильтрации хука xmlrpc_methods в WordPress для удаления pingback.ping и pingback.extensions.getPingbacks, оставив при этом другие методы XML-RPC нетронутыми. Однако полная блокировка xmlrpc.php на уровне сервера является более безопасным подходом, если у вас нет других зависимостей от XML-RPC.

Каков риск SSRF, связанный с пингбэками WordPress?

Когда сайт WordPress получает пингбэк, он выполняет исходящий HTTP-запрос к исходному URL для проверки ссылки. Злоумышленник может указать внутренний IP-адрес в качестве исходного URL, заставив сервер зондировать внутренние сетевые ресурсы. Это уязвимость типа Server-Side Request Forgery. Блокировка xmlrpc.php на уровне веб-сервера полностью устраняет эту поверхность атаки.

Как массово закрыть пингбэки для тысяч существующих публикаций WordPress?

Используйте прямой SQL-запрос к базе данных WordPress: UPDATE wp_posts SET ping_status = 'closed' WHERE post_status = 'publish' AND post_type = 'post'; — всегда делайте резервную копию базы данных перед выполнением любых прямых SQL-изменений. Настройка в панели управления WordPress влияет только на новые публикации в будущем.

15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать