私はアプリケーションでコンテンツセキュリティポリシーレイヤーを管理するコードを実装しました。 私の実装はActionFilterAttribute
に基づいていますが、これはここで利用可能なコードに基づいています(簡単にするために質問に含めています)。Aspネットコアコンテンツセキュリティポリシーの実装
public override void OnResultExecuting(ResultExecutingContext context) {
var result = context.Result;
if (result is ViewResult) {
if (!context.HttpContext.Response.Headers.ContainsKey("X-Content-Type-Options")) {
context.HttpContext.Response.Headers.Add("X-Content-Type-Options", "nosniff");
}
if (!context.HttpContext.Response.Headers.ContainsKey("X-Frame-Options")) {
context.HttpContext.Response.Headers.Add("X-Frame-Options", "SAMEORIGIN");
}
var csp = "default-src *;";
// once for standards compliant browsers
if (!context.HttpContext.Response.Headers.ContainsKey("Content-Security-Policy")) {
context.HttpContext.Response.Headers.Add("Content-Security-Policy", csp);
}
// and once again for IE
if (!context.HttpContext.Response.Headers.ContainsKey("X-Content-Security-Policy")) {
context.HttpContext.Response.Headers.Add("X-Content-Security-Policy", csp);
}
}
}
しかし、次の画像からわかるように、私はまだブラウザ(サンプルのFirefox)にエラーが表示されています。これが存在している、ヘッダ示すデベロッパーコンソールである:
を、これらは私が間違っているのは何のコンソールエラー
あり、expecially内の最後の3つのエラーについてコンソール?あなたはこのヘッダを起こらせる必要があり、コンソール画面キャプチャでCSPエラーを排除するために
問題のコードスニペットは、あなたが 'Content-Security-Policy:default-src *;'ヘッダを設定しているようだが、開発者コンソールスクリーンキャプチャは 'Content-Security-Policy: src 'self; style-src 'self'、img-src 'self''である。どうして? – sideshowbarker
ヘッダーにコンテンツセキュリティポリシーを追加したコードブロック(標準に準拠するブラウザ用に一度コメント付きのコードブロック)は、キーが既にヘッダーに存在するため実行されないようです。解決策は簡単かもしれませんが、誰がそれを追加したのか理解したいと思っています... – Lorenzo
私は、表示されたコンソールエラーが 'script-src:https:// localhost:5000'と'style-src:https:// localhost:5000' ... – sideshowbarker