2015-09-25 21 views
7

Also habe ich CSP für meine Web App implementiert und es funktioniert perfekt in Chrome. Alle Inline-Skripte mit nonce werden ausgeführt; und die ohne es werden nicht ausgeführt. jedochCSP Nonce ignoriert von Safari

In Safari, das ist die Botschaft, die ich in der Konsole sehen:

Die Quellenliste für Content Security Policy Richtlinie 'Skript-src' enthält eine ungültige Quelle: '' nonce-fbe23fb21d40c38e8df7c0a16357dd3ec4be86ca233cb41206ac5f897cf9a103' ". Es wird ignoriert.

Rubrik:

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

Keiner der Inline-Scripts ausgeführt werden, auch die, die mit nonce.

Antwort

8

Safari unterstützt noch keine Nonces (bitte wenden Sie sich an Ihren lokalen Webkit-Vertreter, um dies zu unterstützen), aber Firefox und Chrome haben das Standardverhalten implementiert, das abwärtskompatibel ist. Wenn nämlich ein Nonce vorhanden ist, wird 'unsafe-inline' ignoriert.

Senden Sie sowohl 'unsafe-inline' und Ihre Nonce und Sie erhalten das gewünschte Verhalten. Safari wird sich über den "unbekannten Quellwert" beschweren, aber es wird wie beabsichtigt funktionieren.

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

+0

, wenn ich solche CSP (nicht erlaubt unsichere-inline) in meinem Winkel App verwenden, wird es Winkelereignisse wie ng Sie auf Arbeit lassen? –

+0

Ich habe keine Ahnung, aber wenn NG-Klick nicht mit CSP funktioniert, ist das ng-Klick-Problem, nicht CSPs. – oreoshake

+1

Es sollte darauf hingewiesen werden, dass unsafe-inline möglichst vermieden werden sollte, weil es den Zweck der CSP-Nutzung überhaupt zunichte macht. – nucc1

Verwandte Themen