2015-09-25 9 views
7

Więc zaimplementowałem CSP dla mojej aplikacji internetowej i działa idealnie w Chrome. Wszystkie skrypty wbudowane z nonce są wykonywane; a te bez niego nie są wykonywane.CSP nonce zignorowane przez Safari

W Safari Jednakże, jest to wiadomość widzę w konsoli:

Lista źródło treści Polityki Bezpieczeństwa dyrektywy „script-src” zawiera nieprawidłową źródło: „” nonce-fbe23fb21d40c38e8df7c0a16357dd3ec4be86ca233cb41206ac5f897cf9a103' ". Zostanie zignorowany.

Header:

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

Żadne skrypty inline są wykonywane, nawet te z nonce.

Odpowiedz

8

Safari nie obsługuje jeszcze nonces (proszę o pomoc w tym celu lokalnego przedstawiciela zespołu ds. Webkitów), ale Firefox i Chrome zaimplementowały standardowe zachowanie, które jest kompatybilne wstecznie. Mianowicie, jeśli występuje nonce, wówczas 'unsafe-inline' jest ignorowane.

Wyślij oba 'unsafe-inline' i swój numer, a otrzymasz pożądane zachowanie. Safari będzie skarżyć się na "nieznaną wartość źródłową", ale będzie działać zgodnie z przeznaczeniem.

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

+0

jeśli mogę użyć takiego CSP (nie dopuszczając niebezpieczne-inline) w mojej aplikacji kątowej, to niech kątowych wydarzenia jak praca ng kliknięcie? –

+0

Nie mam pojęcia, ale jeśli ng-click nie działa z CSP, to problem ng-click, a nie CSP. – oreoshake

+1

Warto podkreślić, że w miarę możliwości należy unikać niebezpiecznego inline, ponieważ w pierwszej kolejności pogarsza się cel korzystania z CSP. – nucc1

Powiązane problemy