Безопасность соединения

Lighthouse предоставляет мощные инструменты для оценки безопасности веб-приложений, акцентируя внимание на HTTPS, конфигурации заголовков и уязвимостях протоколов. Ключевым аспектом является проверка того, что все ресурсы загружаются через защищённое соединение и соответствуют современным стандартам безопасности.

Проверка HTTPS

HTTPS является обязательным для безопасного обмена данными между клиентом и сервером. Lighthouse анализирует следующие параметры:

  • Наличие сертификата SSL/TLS: проверяется, действителен ли сертификат, выпущен ли он доверенным центром сертификации и не истёк ли срок его действия.
  • Полная загрузка ресурсов через HTTPS: все изображения, скрипты, стили и шрифты должны быть доступны исключительно через защищённое соединение. Наличие смешанного контента (HTTP на странице с HTTPS) понижает рейтинг безопасности.
  • Использование современных версий TLS: предпочтительно TLS 1.2 или 1.3. Старые версии протокола, такие как TLS 1.0 или 1.1, считаются небезопасными.

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

Lighthouse проверяет конфигурацию HTTP-заголовков, которые защищают сайт от распространённых атак:

  • Strict-Transport-Security (HSTS): обеспечивает принудительное использование HTTPS, предотвращая понижение протокола. Необходимо указывать как минимальный срок действия (например, max-age=31536000), так и флаг includeSubDomains.
  • Content-Security-Policy (CSP): ограничивает источники, с которых можно загружать ресурсы, предотвращая внедрение вредоносных скриптов. Lighthouse оценивает полноту правил CSP и наличие директив для скриптов, стилей, изображений и объектов.
  • X-Content-Type-Options: nosniff: предотвращает интерпретацию браузером файлов с неподходящим MIME-типом, снижая риск выполнения нежелательных скриптов.
  • X-Frame-Options и frame-ancestors: защищают от атак типа clickjacking, запрещая встраивание страниц в iframe.
  • Referrer-Policy и Feature-Policy / Permissions-Policy: ограничивают передачу рефереров и доступ к функционалу устройства, повышая контроль над информацией и ресурсами.

Защита данных и уязвимости протоколов

Lighthouse проверяет конфигурацию, которая минимизирует риск компрометации данных:

  • Безопасные cookie: флаги Secure и HttpOnly обязаны присутствовать, предотвращая кражу через незащищённое соединение и доступ JavaScript к критическим данным.
  • Поддержка современных шифров: проверяется, чтобы сервер использовал устойчивые к атакам алгоритмы шифрования (например, AES-GCM) и отказался от устаревших слабых шифров.
  • Отсутствие известных уязвимостей протокола TLS: проверяется защита от атак типа POODLE, BEAST и других, связанных с уязвимыми алгоритмами шифрования или неправильной реализацией TLS.

Отчёт Lighthouse по безопасности

После анализа Lighthouse формирует детальный отчёт, включающий:

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

Практическое применение

Интеграция Lighthouse в процесс CI/CD позволяет автоматически отслеживать проблемы с безопасностью на каждом этапе разработки. Автоматические отчёты дают возможность быстро выявлять:

  • нарушенные правила CSP или HSTS,
  • устаревшие версии TLS,
  • проблемы с cookie или шифрованием,
  • наличие смешанного контента.

Регулярное использование этих проверок существенно повышает уровень безопасности приложения и соответствует современным стандартам веб-разработки.