21

次の Content-Security-Policy HTTP ヘッダーを使用しながら、TinyMCE を使用しようとしています。

X-WebKit-CSP: default-src 'self'; script-src 'self' 'unsafe-eval'; img-src *; media-src *; frame-src *; font-src *; style-src 'self' 'unsafe-inline'; report-uri /:reportcspviolation

ツール - JavaScript コンソールで次のエラーが表示されます。

Refused to execute JavaScript URL because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval'".
 about:blank:1
Refused to execute inline event handler because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval'".
 test.xhtml:1
Refused to execute JavaScript URL because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval'".
 about:blank:1
Refused to execute inline event handler because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval'".
 test.xhtml:1

ただし、指定された CSP ヘッダーを操作するために外部のみを使用するため、実行可能な JS コードはありません。test.xhtml<script>への参照about:blankも同様に無効です。

CSP違反の原因がどこにあるのかを突き止める方法はありますか?

Chrome の内部 JS デバッガーがソースを特定していないようです。

さらに、何らかの理由で、Chrome はツール - 開発者ツール - ネットワークで CSP 違反レポートを「保留中」と表示しますが、送信するデータを検査しても追加情報は得られません。例:

{"csp-report":{"document-uri":"about:blank","referrer":"url-of/test.xhtml","violated-directive":"script-src 'self' 'unsafe-eval'","original-policy":"default-src 'self'; script-src 'self' 'unsafe-eval'; img-src *; media-src *; frame-src *; font-src *; style-src 'self' 'unsafe-inline'; report-uri /:reportcspviolation"}}

エラー メッセージはonclick、TinyMCE がオンザフライでロードする HTML の一部に属性などを使用することに関するものであることがわかりましたが、どのファイルを探すべきでしょうか? もう 1 つのエラーは、おそらく TinyMCE HTML の一部で、href値が で始まるものjavascript:もありますが、これも Chrome からのポインターがないと見つけるのが非常に困難です。セットアップ全体が Firefox 13 で動作します (対応する CSP ヘッダーを使用)。

CSP違反ごとにChromeに例外をスローさせる方法はありますか?

4

4 に答える 4

8

サイトで CSP をテストするときは、必ずすべての Chrome 拡張機能を無効にしてください。たとえば、AdBlock 拡張機能と PhotoZoom 拡張機能はどちらも独自のインライン スタイルを DOM に追加し、違反を引き起こします (その機能が有効になっている場合は、その後 report-uri にヒットします)。 、および他の拡張機能はおそらく同じことを行います。

于 2012-07-06T17:23:45.947 に答える
0

TinyMCE iframe ドメインとサイトのドメインが異なる場合、javascript を介して iframe にアクセスできず、コンソールにエラー メッセージが表示されます。この状況では、ヘッダーは役に立ちません。iframe とアドレスは同じドメインにありますか?

于 2012-08-14T07:48:05.943 に答える