10

私は自分のセキュリティポリシーを次のように定義しました:

default-src 'self'; script-src 'self'; frame-src 'self';  style-src 'self' 'unsafe-inline'; 

(私はまだいくつかのページの先頭にCSSを持っています)。

FirefoxまたはChromeで問題はありません(IEはまだCSPをサポートしていません)が、Safariでテストしようとすると、次のような一連のエラーが発生します。

Refused to load style from 'http://localhost/styles/alliance.css' because of Content-Security-Policy.
.
.
.
Refused to load image from 'http://localhost/images/Landing1.jpg' because of Content-Security-Policy.
.
.
.
Refused to load script from 'http://localhost/JQuery/jquery-1.7.2.min.js' because of Content-Security-Policy.

画像はdefault-srcでカバーされている必要があり、他の2つは「自己」としてリストされているため、Safariが画像とスクリプトを受け入れない理由がわかりません。私はMacを持っていないので、Windows(5.1.7)でSafariを使用しています。

何か案は?ありがとうございました!

4

1 に答える 1

7

Safari 5は、CSPの実装が少し遅れています。Safari 6の方がはるかに優れていますが、Windows用にリリースされたとは思いません。私はあなたが単に実装のバグを見ていると思います。WebKitナイトリーがWindowsで利用できる場合、それはテストの良い代替手段になる可能性があります。

正直なところ、X-WebKit-CSPSafari 5にヘッダーを提供することはお勧めしません。Safari6はそうですが、5は少し壊れすぎて実際に使用できません。

ポリシーを簡素化できることにも注意してください。との両方script-srcframe-srcフォールバックしdefault-srcます。default-src 'self'; style-src 'self' 'unsafe-inline'同じ効果があるはずです。

于 2012-12-02T07:12:30.467 に答える