Когда я использую Content-Security-Policy, зная, что он (и должен) блокировать некоторые элементы, есть ли способ получить отчеты обо всех нарушениях, кроме этих?
Я получаю, например, обращения от скрипта, который вставлен из какого-то продукта Касперского. Это' Замечательно, когда браузер блокирует этот скрипт, и мне не нужен отчет, так как я не могу его исправить и не хочу менять блок. Но когда какой-то другой ресурс случайно заблокирован (или действительно происходит нарушение безопасности), мне нужен отчет.
Есть ли способ создать черный список, который просто блокируется, и другой список ресурсов, о которых следует сообщать, когда они получают заблокирован?
Вы можете иметь несколько заголовков Content-Security-Policy. Каждый из них будет проверяться независимо. Таким образом, вы можете использовать второй заголовок Content-Security-Policy, чтобы перечислить ресурсы из черного списка, а не устанавливать для этого заголовка отчет-uri.
В первом заголовке Content-Security-Policy, разрешите URL-адреса из черного списка, с помощью отчета-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 будет заблокирован вторым заголовком, но не будет сообщено (нет отчета-uri). Все, что не является a.com b.com x.com y.com будет заблокировано и сообщено.
.