Назад | Перейти на главную страницу

Можно ли настроить отчеты CSP для исключения известных ресурсов из черного списка?

Когда я использую Content-Security-Policy, зная, что он будет (и должен) блокировать некоторые элементы, есть ли способ получить отчеты обо всех нарушениях, кроме этих?

Я получаю, например, обращения из скрипта, который вставлен из какого-то продукта касперского. Замечательно, когда браузер блокирует этот скрипт, и мне не нужен отчет, так как я не могу его ни исправить, ни изменить блок. Но когда какой-то другой ресурс случайно заблокирован (или действительно происходит нарушение безопасности), мне нужен отчет.

Есть ли способ создать черный список, который просто блокируется, и другой список ресурсов, о которых следует сообщать при их блокировке?

У вас может быть несколько заголовков Content-Security-Policy. Каждый из них будет проверен независимо. Таким образом, вы можете использовать второй заголовок Content-Security-Policy для перечисления ресурсов в черном списке и не устанавливать идентификатор отчета для этого заголовка.

В первой Content-Security-Policy разрешите URL-адреса из черного списка с помощью report-uri. Во второй Content-Security-Policy используйте ту же политику, что и заголовок # 1, но не добавляйте URL-адреса в белый список и не устанавливайте report-uri.

Добавление конкретного примера: вы хотите внести в белый список a.com, b.com и в черный список x.com, y.com. Вы будете использовать эти 2 заголовка

Content-Security-Policy: default-src: a.com b.com x.com y.com; report-uri /report
Content-Security-Policy: default-src: a.com b.com;

x.com и y.com будут заблокированы вторым заголовком, но не будут сообщены (нет report-uri). Все, что не является a.com b.com x.com y.com, будет заблокировано и отправлено уведомление.