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

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

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

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

1 ответ

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

В первой 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, будет заблокировано и сообщено.

Другие вопросы по тегам