web-dev-qa-db-ja.com

次のコンテンツセキュリティポリシーディレクティブに違反しているため、スクリプトの読み込みを拒否しました: "style-src 'self' 'unsafe-inline'

コードをリリースモードで実行しているときに、angular=を使用してMVC6(asp.net 5)を使用し、CDNの場所からスクリプトをロードしようとしていますが、何らかの理由でスクリプトがロードされません。

HTMLファイルにメタタグを追加する必要があることを読みましたが、このようにしました。

<meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com; style-src 'self' https://ajax.aspnetcdn.com; font-src 'self' http://netdna.bootstrapcdn.com" />

そして、Index.cshtmlにこれがあります。

<environment names="Staging,Production">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js"
        asp-fallback-src="~/lib/angular/angular.min.js"
        asp-fallback-test="window.angular">
    </script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.min.js"
        asp-fallback-src="~/lib/angular-ui-router/release/angular-ui-router.js"
        asp-fallback-test="window.angular && window.angularUiRouter">
    </script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-local-storage/0.2.2/angular-local-storage.min.js"
        asp-fallback-src="~/lib/angular-local-storage/dist/angular-local-storage.js"
        asp-fallback-test="window.angular && window.localStorage">
    </script>

しかし、それらはロードされません。 IISExpressとDNX Webコマンドを使用してコードを実行しようとしました。

this postがあり、これがMETAタグの作成方法になりますが、なぜ機能しないのかわかりません。私はこれをChromeで試しましたが、コンソールの下で次のようなエラーが発生します

enter image description here

15
Gillardo

Webページのヘッダーセクションに以下を入力します。

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval' http://cdnjs.cloudflare.com ">

コンテンツセキュリティポリシーの詳細については、 here および here を参照してください。

5
drcolombo

私の場合、このポリシーはSecurityHeadersAttributeを介して設定されます(この属性はAccountControllerなどで設定されます)。

基本的に、これはheadersタグにmetaタグを上書きするデフォルトポリシーを追加します。したがって、このポリシーを変更するか、コントローラーから属性を削除する必要があります。

2
Vadym Kyrylkov

問題を回避したい場合は、application.confファイル。

play.filters.disabled += "play.filters.headers.SecurityHeadersFilter"
1
edc