присутствует 'strict-dynamici c', поэтому белый список на основе хоста отключен - PullRequest
0 голосов
/ 21 января 2020

Я загружаю фиктивный JS скрипт из источника, например:

<script src="http://www.this-host.test/loadMe.js"></script>

с CSP-заголовком, установленным в:

script-src 'self' 'strict-dynamic' 'nonce-{randomString}';

Поскольку источник сценария приходит с его исходного узла и допускается заголовком CSP, тогда loadMe.js должен загружаться и выполняться.

Вместо этого я получаю:

Refused to load the script 'http://www.this-host.test/loadMe.js' because it 
violates the following Content Security Policy directive: "script-src 'self' 'strict-dynamic' 'nonce-{randomString}';. 
'strict-dynamic' is present, so host-based whitelisting is disabled.

протестировано на Macintosh; Mac OS X 10_15_2, браузерах Chrome/79.0.3945.117, Firefox/71.0.

Хотя я не получаю это сообщение на Safari.

Возможно, приятно отметить, что я Я тестирую его локально.


В любом случае я не хочу использовать nonce-{randomString}, когда заголовок CSP позволяет загружать ресурсы с исходного узла .

Есть мысли по этому поводу?

1 Ответ

0 голосов
/ 22 января 2020

По данным csp.withgoogle.com server:

Сам по себе «strict-dynamici c» заставляет браузер полагаться только на одноразовые номера или хэши и игнорируйте белый список URI в script-sr c по причинам обратной совместимости.

Это говорит о том, что я должен определить его так:

<script nonce="{randomString}" src="http://www.this-host.test/loadMe.js"></script>

Если loadMe.js" загружает другой файл script src во время выполнения, определите его следующим образом:

<script strict-dynamic nonce="{randomString}" src="http://www.this-host.test/loadMe.js"></script>

Конечно, вы должны доверять loadMe.js исходному файлу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...