Средство проверки безопасности и CSP считывает заголовки ответов страницы, на которой вы находитесь, и оценивает их — политика безопасности контента, HSTS, политика реферера, семейство Cross-Origin и т. д. — затем разбивает директиву CSP вниз за директивой и называет источники, которые ее ослабляют.
Заголовки безопасности легко ошибиться и их сложно проверить. Значения находятся на сервере, политики представляют собой длинные однострочные строки, а ошибки тихие: политика безопасности контента, которая по-прежнему разрешает «unsafe-inline», выглядит как политика, но почти ничего не останавливает. Обычный ответ — вставить свой URL-адрес в онлайн-сканер, который работает только для страниц, до которых может добраться сканер, а не для промежуточного сайта, не внутреннего инструмента или страницы после входа в систему.
Этот инструмент проверяет страницу перед вами, вошедшую в систему под тем же именем, что и вы. Он считывает заголовки ответов документа и дает каждому из них проход, предупреждение или ошибку с простым объяснением: существует ли CSP вообще, будет ли HSTS поддерживать браузеры на HTTPS, отключено ли прослушивание MIME, пропускают ли рефереры полные URL-адреса и какие значения установлены для заголовков Cross-Origin-*. Он также указывает на заголовки, которые выдают больше, чем должны, например, Server и X-Powered-By, называя точную версию вашей платформы.
Вкладка CSP является ее сердцем. Политика разделена на директивы, каждый источник имеет цветовую кодировку, а результаты читаются как обзор: «unsafe-inline» в script-src помечается как сбой, «unsafe-eval» и подстановочные знаки — как предупреждения, а данные: в script-src — как обход. Он знает правила, которые сбивают людей с толку: «unsafe-inline» игнорируется при наличии nonce или хеша, так что этот случай является предупреждением, а не сбоем, и что «strict-dynamic» заменяет списки разрешенных хостов. Также выявляются отсутствующие директивы: нет object-src, нет base-uri, нет предков кадра, нет действия формы. Политики, предоставляемые метатегами, и политики только для отчетов отображаются отдельно, поскольку они ведут себя по-разному.
На вкладке «Соединение» рассказывается о том, что на самом деле делает HTTPS: рукопожатие TLS, максимальный возраст HSTS по сравнению с порогом в один год, который требуется для предварительной загрузки, includeSubDomains и флаги предварительной загрузки, а также каждый небезопасный подресурс или цель формы, которая подрывает страницу HTTPS. Единственное, чего он не требует: данные сертификата. Ни одно расширение браузера не может прочитать цепочку сертификатов, их издателя или дату истечения срока действия, поэтому вместо того, чтобы придумывать их, инструмент говорит, где искать — замок в вашей адресной строке или внешний сервис для полной цепочки.
CSP, HSTS, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy и семейство Cross-Origin, каждый из которых имеет пропуск, предупреждение или сбой и простое объяснение того, что означает его отсутствие.
Политика разбивается на директивы, каждый источник которых имеет цветовую кодировку, поэтому опасное значение выделяется, а не скрывается внутри 500-символьной строки заголовка.
Помечает «unsafe-inline», «unsafe-eval», подстановочные знаки и данные: в script-src, но рассматривает «unsafe-inline» как предупреждение, когда nonce или хэш заставляет браузеры игнорировать его, и присваивает «строгое динамическое» и report-uri.
О политике без object-src, base-uri, Frame-ancestors или form-action сообщается с конкретным риском, который каждый пробел оставляет открытым, в том числе, когда default-src уже покрывает один из них.
Максимальный возраст HSTS в зависимости от порога предварительной загрузки в один год, времени установления связи TLS и каждого подресурса http:// или цели формы, которая подрывает страницу HTTPS, указанную в ее селекторе.
Заголовки считываются со страницы, которую вы уже просматриваете, во время сеанса, поэтому можно проверить внутренние инструменты и предварительные сайты — нет общедоступного URL-адреса, к которому мог бы обратиться сканер.
Пройдите контрольный список на реальной странице: убедитесь, что CSP применяется принудительно, а не только для отчетов, HSTS установлен на год и ничего не загружается по http://.
Онлайн-проверкам заголовков нужен общедоступный URL-адрес. При этом считывается страница, которую вы просматриваете, поэтому промежуточную среду базовой аутентификации или VPN так же легко проверить.
Сразу посмотрите, действительно ли длинная политика ограничивает что-либо, или «unsafe-inline» и хост с подстановочными знаками незаметно превратили это в украшение.
Найдите точное изображение, сценарий или действие формы, по-прежнему используя http:// на странице HTTPS, с помощью селектора элемента, а не через консоль.
Скопируйте датированный отчет по каждому заголовку, его значению и вердикту, чтобы приложить его к аудиту, результатам пентеста или анкете соответствия.
Щелкните значок «Безопасность и CSP» в доке DevSuite Pro. Проверка запускается немедленно, и в сводке отображается количество пройденных, предупрежденных или пропущенных заголовков.
На вкладке «Заголовки» указан каждый заголовок безопасности с его значением и вердиктом. Ниже расположены проверка раскрытия информации и заголовки CORS документа.
Откройте вкладку CSP для просмотра списка результатов, а затем проанализированных директив. Красные источники – это неудачи, желтые – заслуживают второго взгляда, зеленые – то, что использует сильная политика.
На вкладке «Соединение» представлены HTTPS, подтверждение TLS, HSTS и любой смешанный контент. Для получения самого сертификата щелкните замок в адресной строке — ни одно расширение не сможет его прочитать.
В отчете о копировании содержится сводка каждого вердикта, выводов CSP и любого смешанного контента в виде простого текста, готового к выдаче заявки или проверке безопасности.
Установите DevSuite Pro бесплатно и разблокируйте более 71 инструментов разработчика для вашего браузера.