Использование HTTPS — это не только установка SSL-сертификата, но и правильная настройка заголовков безопасности, которые помогают защитить сайт от различных атак и улучшить доверие пользователей и поисковых систем. В этой статье мы подробно рассмотрим, какие HTTPS заголовки стоит настроить в WordPress, как их добавлять через код и плагины, а также приведём примеры реализации.
Что такое HTTPS заголовки безопасности и зачем они нужны
HTTPS заголовки безопасности — это специальные HTTP-заголовки, которые веб-сервер отправляет вместе с контентом страницы. Они информируют браузеры о том, как обрабатывать содержимое сайта, какие политики безопасности применять и как взаимодействовать с внешними ресурсами.
Основные цели использования таких заголовков:
- Защита от атак типа XSS (межсайтовый скриптинг).
- Запрет загрузки небезопасного контента (например, HTTP ресурсов на HTTPS сайте).
- Контроль iframe и других встроенных элементов для предотвращения clickjacking.
- Улучшение производительности и безопасности за счёт HTTP Strict Transport Security (HSTS).
Без правильной настройки этих заголовков HTTPS-сайт может быть уязвим к ряду атак и утратить часть преимуществ HTTPS.
Основные HTTPS заголовки безопасности для WordPress
Content-Security-Policy (CSP)
Этот заголовок позволяет задать строгие правила для источников контента (скрипты, стили, изображения и пр.), которые разрешены для загрузки и выполнения на сайте.
Пример базовой политики CSP для WordPress:
Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.cdn.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self';Для WordPress важно разрешить загрузку скриптов и стилей из доверенных источников, включая собственные файлы темы и плагинов. При использовании плагинов с внешними URL, например, для аналитики или виджетов, их нужно добавить в белый список.
Strict-Transport-Security (HSTS)
Этот заголовок заставляет браузеры использовать HTTPS для всех запросов к сайту в течение заданного времени и запрещает подключение по HTTP.
Strict-Transport-Security: max-age=31536000; includeSubDomains; preloadВажно включать параметр includeSubDomains, если все поддомены тоже работают через HTTPS, и опцию preload, чтобы добавить сайт в список предварительной загрузки HSTS браузеров.
X-Frame-Options
Защищает от clickjacking, запрещая встраивание сайта в iframe на других ресурсах.
X-Frame-Options: SAMEORIGINЗначение SAMEORIGIN разрешает встраивание только на том же домене.
X-Content-Type-Options
Запрещает браузеру пытаться угадать MIME-тип, что предотвращает некоторые атаки на основе неправильного распознавания контента.
X-Content-Type-Options: nosniffReferrer-Policy
Управляет отправкой заголовка Referer, что улучшает конфиденциальность пользователей.
Referrer-Policy: no-referrer-when-downgradeКак добавить HTTPS заголовки безопасности в WordPress через functions.php
Добавим функцию для вставки нужных заголовков в ответ сервера:
function wpssl_add_security_headers() {
header('Content-Security-Policy: default-src \'self\'; script-src \'self\' https://trusted.cdn.com; style-src \'self\' \'unsafe-inline\'; img-src \'self\' data:; font-src \'self\';');
header('Strict-Transport-Security: max-age=31536000; includeSubDomains; preload');
header('X-Frame-Options: SAMEORIGIN');
header('X-Content-Type-Options: nosniff');
header('Referrer-Policy: no-referrer-when-downgrade');
}
add_action('send_headers', 'wpssl_add_security_headers');Эту функцию можно добавить в файл functions.php вашей темы или создать отдельный плагин. Она будет добавлять заголовки при каждом ответе сервера.
Важно после добавления проверить корректность работы сайта и отсутствие ошибок в консоли браузера, особенно из-за CSP.
Использование плагинов для настройки HTTPS заголовков
Если вы не хотите добавлять код вручную, можно использовать плагины для управления заголовками безопасности.
Плагины для HTTPS заголовков:
- Clearfy Pro — удобный плагин с настройками безопасности, включая управление CSP, HSTS и другими заголовками.
- HTTP Headers Security — простой плагин для добавления основных заголовков.
- Secure Headers — позволяет гибко настраивать все ключевые заголовки безопасности.
Clearfy Pro, например, позволяет не только включать нужные заголовки, но и автоматически обнаруживать конфликтующие скрипты и стили, упрощая настройку CSP. Это особенно полезно на сложных сайтах с множеством внешних ресурсов.
Практические советы по тестированию и отладке HTTPS заголовков
После настройки заголовков важно проверить их корректность и убедиться, что сайт работает стабильно.
- Используйте securityheaders.com для быстрой проверки настроек безопасности сайта.
- Для отладки CSP полезно включить режим отчётов (
Content-Security-Policy-Report-Only), чтобы выявить блокируемые ресурсы без реального ограничения. - Проверяйте консоль браузера на предмет ошибок загрузки скриптов или стилей, связанных с CSP.
- Не забывайте тестировать мобильную версию и страницы с динамическим контентом.
Если ваш сайт использует тему Reboot или другие современные темы, убедитесь, что они совместимы с вашими настройками безопасности.
Выводы и рекомендации
Настройка HTTPS заголовков безопасности — обязательный шаг для профессионального сайта на WordPress. Это повышает защиту от атак, улучшает SEO и доверие пользователей.
Рекомендуется комбинировать ручную настройку через functions.php и использование плагинов, таких как Clearfy Pro, для удобства и гибкости.
Не забывайте регулярно проверять и обновлять политики безопасности по мере изменения структуры сайта и подключения новых внешних ресурсов.