Перейти к содержанию

Парсер отчётов о нарушениях CSP

Преобразуйте вставленные отчёты о нарушениях CSP в удобный для чтения итог: какие директивы и источники блокируются.

Входные данные
Выходные данные

Парсер отчётов о нарушениях CSP

Вставьте JSON отчётов из endpoint'а report-uri вашей CSP-политики или из Reporting API и этот инструмент превратит стену отчётов о нарушениях в понятный итог: какие директивы блокируются и какие источники их вызывают. Он создан для разработчиков, внедряющих или ужесточающих Content-Security-Policy, которым нужно видеть закономерность среди десятков или сотен отчётов, а не читать каждый отдельно.

Группируйте по директиве, чтобы увидеть, какие разделы политики срабатывают чаще всего, или группируйте по заблокированному источнику, чтобы найти один скрипт или таблицу стилей, вызывающие больше всего шума. Скройте отчёты от расширений браузера — Chrome и Firefox отправляют тела csp-report с blocked-uri, начинающимся с chrome-extension: или moz-extension:, всякий раз когда установленное расширение нарушает политику страницы, что не имеет отношения к вашему коду. Включите показ затронутых страниц, чтобы увидеть каждый URL документа, на котором было обнаружено нарушение. Переключитесь на рекомендуемые правила, и инструмент предложит дополнения к source-list — источники, 'unsafe-inline', data: — которые разрешили бы каждой заблокированной директиве пройти, как отправную точку для расширения политики.

Парсер принимает JSON-массив, один объект отчёта или один отчёт на строку и понимает как классическое тело POST с {"csp-report": {...}}, так и новую оболочку Reporting API с {"type", "body"}, так что необработанные логи сервера вставляются без переформатирования. Отчёты, которые не парсятся, пропускаются вместо сбоя пакета, а счётчик показывает, сколько отчётов поступило, на сколько групп они свернулись и сколько отчётов от расширений было отфильтровано.

Всё работает в вашем браузере. Вставленные отчёты никогда не загружаются никуда, что важно, так как они могут содержать внутренние URL и структуру страницы. Скопируйте итог, скачайте его как .txt файл или отправьте его на вход другого инструмента для дальнейшей работы.

FAQ

Какие форматы отчётов он понимает?
Оба формата, которые отправляют браузеры: классическое тело POST report-uri, обёрнутое в "csp-report", и новую оболочку Reporting API с полем "body". Он также принимает голый объект отчёта без обёртки и JSON-массив или один отчёт на строку.
В чём отличие группировки по директивам и по источникам?
Группировка по директиве показывает, какие разделы политики (script-src, style-src…) срабатывают чаще всего; группировка по заблокированному источнику показывает, какой скрипт, таблица стилей или другой ресурс вызывает больше всего нарушений по всем директивам.
Почему некоторые отчёты скрыты по умолчанию?
Отчёты, у которых blocked-uri начинается с chrome-extension: или moz-extension:, поступают от расширения браузера, которое нарушает политику страницы, а не от вашего собственного кода. Скрытие включено по умолчанию; выключите его, чтобы увидеть всё.
Как вычисляются рекомендуемые правила?
Для каждой директивы инструмент собирает каждый различный заблокированный источник и сокращает его до выражения source-list CSP — источник для URL, 'unsafe-inline' для встроенных скриптов или стилей, 'unsafe-eval' для eval, data: для data-URI — затем выводит их как отправную точку, не как политику для вставки без проверки.
Мои данные отчётов загружаются где-нибудь?
Нет. Парсинг происходит полностью в вашем браузере — вставленные отчёты никогда не покидают ваше устройство.