ГлавнаяОбучениеБезопасностьHTTP-заголовки безопасности

    HTTP-заголовки безопасности

    Самые простые улучшения безопасности - серверные заголовки, защищающие от XSS, кликджекинга, MIME-сниффинга и SSL-стриппинга. Большинство настраивается менее чем за час.

    · Основатель, WebsiteCoach ·

    Краткий обзор для руководителей

    HTTP-заголовки безопасности - это директивы на уровне сервера, которые инструктируют браузеры о безопасной обработке контента. Это одни из наиболее эффективных и наименее трудозатратных улучшений безопасности - как правило, требуют только настройки сервера или CDN без изменений кода. Отсутствующие заголовки постоянно упоминаются в TOP 10 угроз безопасности веб-приложений по версии OWASP.

    Влияние на бизнес

    Успешная XSS-атака (предотвращаемая с помощью CSP) может привести к перехвату сессий, краже учётных данных и утечкам данных клиентов. По GDPR утечка данных может повлечь штрафы до 4% от мирового годового оборота. Отсутствие HSTS делает ваш сайт уязвимым для SSL-стриппинга - атаки «человек посередине», перехватывающей данные по незашифрованным соединениям.

    Источник: анализ заголовков HTTP-ответа, выполняемый при каждом аудите WebsiteCoach.

    Заголовки безопасности с пояснениями

    Content-Security-Policy (CSP)
    CSP ограничивает источники ресурсов. Сначала проверьте политику в режиме report-only, затем включайте блокировку.
    Strict-Transport-Security (HSTS)
    HSTS закрепляет использование HTTPS. Проверьте покрытие HTTPS перед увеличением max-age и включением поддоменов.
    X-Frame-Options / frame-ancestors
    Значение nosniff ограничивает определение типа содержимого браузером. Также отправляйте правильный Content-Type.
    X-Content-Type-Options
    Ограничивает встраивание страницы во фрейм. Согласуйте его с CSP frame-ancestors и нужными интеграциями.
    Permissions-Policy
    Определяет объём информации об исходном URL в запросах. Проверьте требования используемых сервисов.
    Referrer-Policy
    Разрешает или запрещает функции браузера, например камеру. Оставляйте только необходимые возможности.
    Действительность и срок действия SSL/TLS-сертификата
    CORP ограничивает использование ресурса другими источниками в соответствующих запросах no-cors.
    Обнаружение небезопасных cookie
    COOP изолирует контексты браузера. Проверьте всплывающие окна входа и оплаты.
    Настройка CORS
    COEP задаёт требования к внешним ресурсам. Проверьте их настройки CORS или CORP.

    План действий по ролям

    Руководство / Юридический отделРиски и соответствие
    • →Утвердить внедрение заголовков безопасности как часть позиции по соответствию требованиям
    • →Понять, что отсутствующие CSP и HSTS являются распространёнными находками при аудитах безопасности и пентестах
    • →Включить соответствие заголовков безопасности в оценки безопасности поставщиков
    ИТ / DevOpsНастройка сервера и CDN
    • →Настроить все заголовки безопасности на уровне обратного прокси или CDN (nginx, Cloudflare, Vercel)
    • →Включить предзагрузку HSTS через hstspreload.org после подтверждения полного покрытия HTTPS
    • →Добавить управляемый набор правил заголовков безопасности Cloudflare при использовании Cloudflare
    Инженер по безопасностиРазработка политики и мониторинг
    • →Разработать политику CSP начиная с режима только-отчёты, чтобы избежать критических изменений
    • →Использовать Mozilla Observatory или WebsiteCoach для оценки полноты заголовков
    • →Настроить endpoint отчётности о нарушениях CSP для мониторинга заблокированных ресурсов
    • →Проверить и ужесточить Permissions-Policy, оставив только необходимые API браузера
    Фронтенд-разработчикСовместимость CSP
    • →Удалить все inline-блоки <script> и <style> - заменить внешними файлами (требуется для строгой CSP)
    • →Проверить все сторонние скрипты и добавить их домены в белый список CSP
    • →Тестировать после развёртывания CSP, используя консоль браузера для выявления ошибок нарушений

    Как проверить заголовки ответа

    Откройте вкладку Network в инструментах браузера и выберите последний запрос документа после перенаправлений. Команда ниже показывает заголовки каждого ответа, используя GET.

    1. Проверьте главную страницу, статью и ответ с ошибкой: настройки могут различаться.
    2. Сопоставьте политику с необходимыми скриптами, фреймами и внешними сервисами.
    3. После изменения проверьте вход в аккаунт, оплату и сообщения в консоли браузера.
    curl -sS -L -D - -o /dev/null https://example.com/

    Безопасное внедрение CSP и HSTS

    Сначала тестируйте CSP в режиме Content-Security-Policy-Report-Only. Он не блокирует ресурсы; для отправки отчётов на сервер требуется отдельная настройка. После проверки перенесите рабочую политику в Content-Security-Policy.

    Для встроенных скриптов используйте nonce или хеши вместо широкого разрешения unsafe-inline. Для HSTS сначала убедитесь в надёжной работе HTTPS и протестируйте небольшой max-age. Не добавляйте includeSubDomains или preload без проверки всех затронутых поддоменов.

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

    Часто задаваемые вопросы

    Что такое HTTP-заголовки безопасности?

    Самые простые улучшения безопасности - серверные заголовки, защищающие от XSS, кликджекинга, MIME-сниффинга и SSL-стриппинга. Большинство настраивается менее чем за час.

    Почему HTTP-заголовки безопасности важно?

    Успешная XSS-атака (предотвращаемая с помощью CSP) может привести к перехвату сессий, краже учётных данных и утечкам данных клиентов. По GDPR утечка данных может повлечь штрафы до 4% от мирового годового оборота. Отсутствие HSTS делает ваш сайт уязвимым для SSL-стриппинга - атаки «человек посередине», перехватывающей данные по незашифрованным соединениям.

    Официальные источники

    Проверьте оценку безопасность сейчас

    Бесплатный аудит за 60 секунд - без аккаунта.

    Бесплатный аудит