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 или шифрованием,
- наличие смешанного контента.
Регулярное использование этих проверок существенно повышает уровень
безопасности приложения и соответствует современным стандартам
веб-разработки.