Safari CSP игнорирует nonce и unsafe-inline - PullRequest
1 голос
/ 05 июля 2019

Я нахожусь в процессе дальнейшей блокировки нашего CSP и применения подхода, основанного на одноразовом использовании CSP3. Все отлично работает во всех браузерах, кроме Safari:

Пример встроенного скрипта с одноразовым номером и следующим CSP (обрезан для удаления некоторых разрешенных нами URL-адресов - я также проверил совпадения с одноразовыми номерами):

content-security-policy-report-only: script-src 'self' 'unsafe-inline' https: 'strict-dynamic' 'nonce-xxxx'; upgrade-insecure-requests; default-src 'self' gap: blob:; style-src 'self' 'unsafe-inline'; base-uri 'none'; report-uri https://xxx.report-uri.com/r/d/csp/reportOnly

Ошибка Safari: Safari error

Я тестирую Safari 11 на OSx, но в соответствии с нашими отчетами о тестировании в Safari 12 эта проблема присутствует.

Любая помощь приветствуется.

1 Ответ

1 голос
/ 08 июля 2019

Хорошо, я решил это:

По моему опыту и из тестирования здесь: Вы не можете иметь CSP с принудительной проверкой и только с отчетом одновременно с Safari, кажется, что они смешивают политики между ними исообщать о нарушениях для элементов, не нарушающих правила.

Удалите одну из директив CSP и отправьте только отчет или принудительный отчет, и он начнет работать как задумано.

...