SSL и security-заголовки: чек-лист технической гигиены
HTTPS давно стал нормой, но одного сертификата мало. Security-заголовки защищают посетителей и сигналят поисковику, что сайту можно доверять.
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: их нередко обслуживает другая секция конфигурации, где нужных строк никто не дописал.
Материал носит информационный характер и не является юридической консультацией. Актуальность требований проверяйте на момент чтения.