2015-09-25 3 views
7

Итак, я реализовал CSP для своего веб-приложения, и он отлично работает в Chrome. Выполняются все встроенные скрипты с nonce; и те, что без него, не выполняются.CSP nonce игнорируется Safari

В Safari однако, это сообщение, которое я вижу в консоли:

Список источников для содержания политики безопасности директивы «сценарий-Src» содержит недопустимый источник: «» нонс-fbe23fb21d40c38e8df7c0a16357dd3ec4be86ca233cb41206ac5f897cf9a103' ». Он будет игнорироваться.

Заголовок:

Content-Security-Policy script-src 'nonce-cb28e5c8a2b833169bb8d1fa686f659fed9b3bf8ea52b86916bcaf20a04b3209' 'self' 

Ни один из встроенных скриптов не выполняются, даже те, с одноразовым номером.

ответ

8

Safari еще не поддерживает nonces (пожалуйста, сообщите об этом местному представителю веб-сайтов), но Firefox и Chrome внедрили стандартное поведение, которое совместимо с обратной связью. А именно, если присутствует nonce, то 'unsafe-inline' игнорируется.

Отправьте оба 'unsafe-inline' и ваш номер, и вы получите желаемое поведение. Safari будет жаловаться на «неизвестное значение источника», но оно будет работать по назначению.

См http://www.w3.org/TR/CSP2/#directive-script-src

+0

если я использую такой ПЕС (не позволяя небезопасный-рядный) в моем угловом приложении, он будет препятствовать угловые событиям как нг щелкните работу? –

+0

Я понятия не имею, но если ng-click не работает с CSP, это проблема ng-click, а не CSP. – oreoshake

+1

Стоит отметить, что, по возможности, следует избегать небезопасных встроенных линий, поскольку это, в первую очередь, ставит целью использовать CSP. – nucc1

Смежные вопросы