Что такое HTTP-заголовки?
Это технические настройки, которые сервер передаёт браузеру вместе со страницей.
С их помощью можно улучшить безопасность, защититься от атак и повысить доверие поисковиков.
Защита от сниффинга (HSTS)
Что это?
HSTS (HTTP Strict Transport Security) заставляет браузер всегда использовать HTTPS, даже если пользователь ввёл http://.
Формат заголовка:Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Плюсы:
— Исключает возможность перехвата данных
— Защищает от атак типа "downgrade" (перевод на небезопасную версию сайта)
— Можно внести сайт в "preload"-список Chrome
X-Content-Type-Options
Что это?
Защита от автоматического угадывания типа содержимого. Без неё браузер может «додумывать», что за файл загружается, и открыть вредоносный скрипт.
Нужный заголовок:X-Content-Type-Options: nosniff
Если его нет:
— Возможен запуск нежелательного кода
— Потенциальная угроза безопасности
Защита от clickjacking
Что это?
Clickjacking — это когда злоумышленник встраивает ваш сайт в iframe и обманывает пользователя, заставляя нажимать на невидимые элементы.
Решение:
Заголовок X-Frame-Options: DENY или SAMEORIGIN запрещает встраивание.
Если стоит DENY — отлично!
Политика безопасности контента (CSP)
Что это?
Это набор правил, что можно загружать и запускать на сайте. Один из самых мощных инструментов защиты.
Пример:
Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.cdn.com
Если CSP нет:
— Больше шансов для XSS-атак
— Злоумышленники могут внедрить вредоносные скрипты через уязвимости
Блокировка XSS-атак
Что это?
XSS (Cross-Site Scripting) — одна из самых распространённых атак.
Заголовок X-XSS-Protection: 1; mode=block сообщает браузеру: если он заметит попытку внедрения скрипта — блокируй.
Если есть — хорошо. Если нет — стоит добавить.
Контроль передачи Referer
Что это?
Заголовок Referrer-Policy определяет, передаётся ли адрес страницы, с которой перешёл пользователь, другим сайтам.
Зачем это нужно?
— Защищает от утечек приватной информации в URL
— Рекомендуемое значение: no-referrer-when-downgrade
Открытые порты
Что это?
Это технические "двери", через которые сервер общается с внешним миром. Некоторые порты — уязвимы.
Типичные значения:
-
80 (HTTP) — открыт на всех сайтах
-
443 (HTTPS) — безопасный
-
21 (FTP) и 22 (SSH) — могут быть уязвимы, если не защищены
Если они открыты:
— Нужно убедиться, что доступ ограничен и настроена защита
Каталоги с открытым доступом: Нет
Что это?
Если какой-то раздел сайта (например, /uploads/) доступен как папка с файлами — это может быть уязвимость.
Если таких каталогов нет — это хорошо.
Общее состояние безопасности
Что это?
Итоговая оценка состояния сайта на основе всех заголовков, портов, редиректов и угроз.
Если оценка 90/100:
— Уровень безопасности высокий
— Но стоит устранить 1–2 недоработки (например, добавить CSP или X-Content-Type-Options)
PRO — Диагностика угроз
Вредоносные паттерны: document.write(
Что это?document.write() — устаревшая и потенциально опасная функция JavaScript. Может быть использована для атак, особенно если внедряется из стороннего кода.
Что делать?
— Проверить, где она используется
— Заменить на современные методы (например, appendChild, textContent)
Подозрительные редиректы
Если были — это может быть признак вредоносного поведения (например, перенаправление на фишинговые сайты).
Malware-оценка: 100/100
Что это?
Означает, что на сайте не найдено вредоносных скриптов или заражённых файлов. Отличный результат.
Чёрные списки: Google / Yandex / Spamhaus
Что это?
Проверка, не занесён ли сайт в базу подозрительных или вредоносных.
Если "неизвестно" или "нет" — всё в порядке.
