Как удалить защитные заголовки в WordPress для повышения безопасности

В WordPress по умолчанию отправляются множество HTTP-заголовков, которые могут раскрывать избыточную информацию о вашем сайте и его конфигурации. Эти заголовки потенциально облегчают задачу злоумышленникам, позволяя им собирать сведения о версиях CMS, используемых плагинах и других компонентах. В этой статье разберем, какие защитные заголовки стоит удалить или изменить, и как это сделать с помощью кода.

Почему важно управлять HTTP-заголовками в WordPress

По умолчанию WordPress отправляет такие заголовки как X-Powered-By, Server, Link и другие, которые могут раскрывать версию PHP, используемые плагины, темы и прочую информацию. Это облегчает автоматизированные атаки на уязвимые версии ПО.

Удаление или корректировка таких заголовков – простой, но эффективный метод усиления защиты сайта. Это не единственная мера безопасности, но она снижает риск при сканировании сайта на уязвимости.

В следующих разделах рассмотрим, какие заголовки стоит убрать и как это сделать программно.

Какие HTTP-заголовки стоит удалить или изменить

Заголовок X-Powered-By

Часто сервер или PHP отправляет заголовок X-Powered-By, в котором указывается версия PHP. Это облегчает подбор эксплойтов под конкретную версию.

Для удаления заголовка можно использовать PHP-функцию header_remove('X-Powered-By') или отключить его на уровне конфигурации сервера. В WordPress удобно добавлять код в файл functions.php или в собственный маленький плагин.

Заголовок Server

Заголовок Server сообщает о типе и версии веб-сервера (Apache, nginx и др.). Его удаление или маскировка возможна только на уровне конфигурации сервера, например, в nginx через директиву server_tokens off;.

Заголовок Link

WordPress добавляет заголовок Link с URL для REST API и других сервисов. Иногда это нежелательно раскрывать, особенно если REST API не используется.

Удалить этот заголовок можно через фильтр WordPress.

Практические примеры кода для удаления защитных заголовков

Далее приведу пример кода, который можно добавить в файл functions.php вашей темы или в отдельный плагин, чтобы убрать лишние заголовки.

<?php

// Функция для удаления заголовков в WordPressy
function wordpressy_remove_security_headers() {
    // Удаляем X-Powered-By
    header_remove('X-Powered-By');

    // Удаляем Link заголовок, добавляемый WordPress
    remove_action('template_redirect', 'rest_output_link_header', 11);
    remove_action('wp_head', 'rest_output_link_wp_head', 10);

    // Отключаем версию WordPress в заголовках
    remove_action('wp_head', 'wp_generator');
}
add_action('send_headers', 'wordpressy_remove_security_headers');

// Дополнительно можно очистить другие заголовки, если нужно

Этот код удалит заголовок X-Powered-By, заголовки REST API и версию WordPress из заголовков HTTP. Это существенно снизит раскрытие информации.

Как проверить, что заголовки действительно удалены

После внесения изменений проверьте HTTP-заголовки сайта с помощью инструментов:

  • Web Sniffer
  • Расширения для браузеров (например, "HTTP Headers" для Chrome или Firefox)
  • Команда curl в терминале: curl -I https://ваш-сайт.ru

Обратите внимание, что некоторые заголовки, например Server или X-Powered-By от PHP, могут быть установлены уже на уровне сервера, и их удаление через WordPress не сработает. В таком случае надо редактировать конфигурацию сервера.

Дополнительные рекомендации по безопасности HTTP-заголовков

Кроме удаления лишних заголовков, стоит добавить полезные заголовки безопасности:

  • Content-Security-Policy — ограничивает источники загрузки ресурсов.
  • X-Frame-Options — предотвращает кликджекинг.
  • X-Content-Type-Options — запрещает браузеру MIME sniffing.
  • Referrer-Policy — контролирует передачу информации о реферере.

Добавление таких заголовков можно реализовать в WordPress так же через хук send_headers. Пример:

<?php
function wordpressy_add_security_headers() {
    header('X-Frame-Options: SAMEORIGIN');
    header('X-Content-Type-Options: nosniff');
    header('Referrer-Policy: no-referrer-when-downgrade');
    header("Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline';");
}
add_action('send_headers', 'wordpressy_add_security_headers');

Этот код повысит уровень защиты сайта за счет ограничения поведения браузера.

Популярные плагины для управления HTTP-заголовками в WordPress

Если хотите управлять заголовками через интерфейс, рекомендую следующие плагины:

  • HTTP Headers — позволяет легко добавлять и удалять любые заголовки.
  • Security Headers — помогает настроить заголовки безопасности без кодинга.
  • WP Security Audit Log — отслеживает изменения и может помочь контролировать заголовки.

Эти инструменты дают удобный способ контролировать HTTP-заголовки и повышать безопасность сайта без прямого редактирования кода.

Заключение

Управление HTTP-заголовками — важный и простой шаг для повышения безопасности WordPress-сайта. Удаление избыточных заголовков, которые раскрывают информацию о сервере и CMS, снижает риски атак. Дополнение правильными заголовками безопасности укрепит защиту.

Используйте приведенные выше примеры кода и рекомендации, чтобы защитить ваш сайт wordpressy.ru от распространенных уязвимостей, связанных с избыточной информацией в заголовках HTTP.

Как использовать куки для авторизации в WordPress
09.02.2026
Как избежать проблем с пересекающимися CSS в WordPress
30.12.2025
Как избежать проблем с неправильно отслеживаемыми заказами в WooCommerce
23.05.2026
Как избежать проблем с нерабочими изображениями после миграции WordPress
27.05.2026
Как избежать проблем с неправильным выполнением AJAX в WordPress
18.01.2026