2

コンテンツ セキュリティ ポリシーを使用するように Web ソフトウェアを変更しようとしています。それなしでコンパイルすると、すべて正常に動作します。CSP ヘッダーを含めると、Chrome は (Chrome 開発者ツールを使用して) 2 つの場所でエラーを報告します。

  • インライン JavaScript がないにもかかわらず、すべての ASPX または HTML ファイルの最初の行に「コンテンツ セキュリティ ポリシーに違反しているため、インライン スクリプトの実行を拒否しました...」というエラーが表示されます。
  • 「このコンテキストでは許可されていない文字列からのコード生成」エラー - これは jquery-1.8.3.min.js ファイルに記載されていますが、私が書いたいくつかの JQuery から発生しているように見えます。ページ上にアイテムを生成する Web サービス。

では、2 つの質問があります。純粋な静的 HTML ファイルであるにもかかわらず、すべてのファイルが違反していると常に言われるのはなぜですか?

第二に、コンテンツのセキュリティは、JQuery を使用して html を生成するときに文字列を使用できないことを本当に意味していますか?それが専用の .js ファイルにある場合でも? 私はウェブ全体の情報を見てきましたが、この特定の問題は実際には解決されていません。では...ここでのルールは何ですか?

私が本当に望んでいるのは、A) インライン JavaScript と B) 外部 JS ファイルのロードを防ぐことだけです。

どんな助けでも大歓迎です!

更新: JQuery/JQueryUI を 1.8.2 / 1.9.1 にアップグレードすると、文字列エラーはなくなりました。以前使用していたバージョンはわずか 1 か月前のものだったので、これは JQuery の最近の改良のようです。他の変更も行っているため、これが JQuery であったかどうかはわかりませんが、可能であれば、より最近の JQuery を使用することは理にかなっています。

4

1 に答える 1

3

コンテンツ セキュリティ ポリシーは、デフォルトでブロックevalおよびeval類似の構造 ( new FunctionsetTimeout([STRING], ...)など) をブロックします。インライン スクリプトと同じくらい危険です。を許可したい場合は、許可されたスクリプトのソースとしてevalホワイトリストに登録する必要があります。'unsafe-eval'それは次のようになります。

Content-Security-Policy: script-src 'self' 'unsafe-eval' https://script.com

仕様の関連部分はhttp://www.w3.org/TR/CSP/#script-srcです。http://www.html5rocks.com/en/tutorials/security/content-security-policy/#eval-tooも役立つ場合があります。

エラー メッセージに関しては、Canary を使用することをお勧めします。ここ 1、2 か月でエラー メッセージが大幅に改善されました。近い将来、Stable でより良いデバッグ体験ができることを願っています。Canary で問題をデバッグするのに十分な情報が得られないエラーが引き続き発生する場合は、バグ ( http://new.crbug.com/ ) を報告し、ここに ID を投稿してください。誰かに見てもらうようにします。

あなたが CSP を試していると聞いてうれしく思います。

于 2012-11-21T06:19:19.137 に答える