Безопасность4 мин чтения1 просмотр

SSL и security-заголовки: чек-лист технической гигиены

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

Безопасность
HTTPS = база
сайт без действующего SSL браузер помечает как «небезопасный», и часть посетителей уходит ещё до загрузки страницы.

SSL-сертификат

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

Ключевые заголовки

HSTS заставляет браузер всегда использовать HTTPS — даже если человек набрал адрес без него, и заодно убирает лишний шаг из цепочки переадресаций. CSP ограничивает, откуда грузятся скрипты, и защищает от внедрения чужого кода. X-Frame-Options не даёт встроить ваш сайт в чужую страницу, из-за чего невозможен приём с невидимым слоем поверх ваших кнопок. X-Content-Type-Options запрещает браузеру угадывать тип файла вместо того, который вы объявили.

Зачем это для SEO

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

Как это настраивается

Заголовки добавляются на веб-сервере и не требуют переделки сайта. Ниже — рабочий минимум для nginx; в Apache и панелях хостинга то же самое делается своими средствами, смысл строк не меняется.

add_header Strict-Transport-Security "max-age=31536000" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;

С чего начать и чего не делать сразу

Начните с трёх безопасных заголовков выше — они почти никогда ничего не ломают. CSP оставьте на потом и включайте в режиме отчёта: строгая политика, выставленная сразу, отключает собственные скрипты сайта, и вы узнаете об этом от посетителей. HSTS включайте, только когда HTTPS работает на всех поддоменах: откатить его быстро не получится, браузер запомнит указание надолго.

Как убедиться, что заголовки действительно отдаются

Строка в конфигурации и заголовок, дошедший до браузера, — разные вещи: правило может стоять не в той секции, перекрываться соседней или теряться на промежуточном сервере. Смотреть надо на ответ, а не на конфигурацию. Быстрый способ — вкладка сетевых запросов: откройте страницу, выберите первый запрос и прочитайте заголовки ответа. Проверять стоит не только главную: часть настроек добавляется для статики и не доезжает до страниц, которые собирает приложение. И отдельно — адрес без HTTPS и адрес с www: их нередко обслуживает другая секция конфигурации, где нужных строк никто не дописал.

Что сделать прямо сейчас
Включите заголовок HSTS
Настройте базовую политику CSP
Добавьте X-Frame-Options и X-Content-Type-Options
Включите CSP сначала в режиме отчёта, а не сразу запретом
Переслать статью
А что покажет ваш сайт?
110 проверок за 1–3 минуты. Балл, разбивка по направлениям и две самые весомые находки — бесплатно.
Проверить сайт на SEO — бесплатно
Похожие материалы
ИндексацияСайта нет в поиске: пять причин, которые видно за минутуЧитать →КанонизацияДубли страниц: поиск показывает не тот адресЧитать →МобильныеБольше половины посетителей с телефона: что ломается чаще всегоЧитать →
Читать дальше
СсылкиБитые ссылки и лишние редиректы: тихие убийцы трафика
Тема:БезопасностьВсе материалы ленты «SEO, скорость и техника сайта»

Материал носит информационный характер и не является юридической консультацией. Актуальность требований проверяйте на момент чтения.