私は、ASP.NETのコアアプリケーションを持っていると私は日付、DropDownListコントロールなどの特定のウィジェットなど剣道ウィジェットは、CSPが有効になっている場合は動作しません
アプリケーションがすべてロードされたチャートのASP.NETコアフレームワークのためにTelerikのUIを使用していますjavascripts、images、cssを自分のサーバーから削除します。 「スクリプトを:それは、次の コンテンツセキュリティポリシーの指示に違反しているため、私は
Chromeのコンソールにエラーが表示され、ページの読み込みがインラインスクリプトを実行することを拒否するときので、私はしかし
script-src 'self' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; media-src 'none'; object-src 'none'; child-src https://xxxx.yyyy.com; report-uri http://myapplication/csp/report;
以下のようにCSPのポリシーを有効にしています-src 'self' 'unsafe-eval' "です。 「危険インライン」キーワード、ハッシュいずれ (「SHA256は、oii70XYoqukWS9204nbwatxgYOYcr06 + rftc4egdfUk =」)、またはノンス (「ノンス...」)インライン実行を
これを有効にするために必要とされますそのページで使用しているいくつかの剣道ウィジェットでエラーが繰り返されます。たとえば、日付ウィジェットです。 CSHTMLでは私はすでにTelerikの提案hereとCSP用hereを経てい
<input class="mydate" id="sbDate" name="sbDate" type="date" value="" /><script>jQuery(function(){jQuery("#sbDate").kendoDatePicker({"format":"M/d/yyyy","footer":false});});</script>
としてHTMLにレンダリング取得
@(Html.Kendo().DatePicker()
.Name("sbDate")
.HtmlAttributes(new { @class = "mydate" }))
以下のように日付を設定しています。そして、私はちょうど私がunsafe-eval
ウィジェットを動作させるために追加する必要があります。しかし、それは真実ではないように見えます。ウィジェットを動作させるには、unsafe-inline
を追加する必要があります。
しかし、CSPを有効にすることのポイントは、インラインスクリプトを許可しないことです。
質問
この問題を解決する方法はありますか?
アップデート1
ウィジェットのみunsafe-inline
を追加することなく、IE 11で動作します。クロムとIEエッジウィジェットではunsafe-inline
が必要です。
感謝を使用する場合
unsafe-inline
を追加する必要はありません考えています。スクリプトがビューに保持されているので、私はここには投稿が見つかりませんでした。 http://stackoverflow.com/questions/39125743/how-can-i-get-kendoui-mvc-to-work-with-content-security-policyしかし、私たちはスクリプトタグの中で一度に異なるスクリプトを書くことができ、 'nonce 'on script tag on CSP。 – LP13