web-dev-qa-db-ja.com

content-security-policyメタタグを使用して混合コンテンツ(httpとhttps)を許可するにはどうすればよいですか?

私はhttpsに自分のウェブサイトへのアクセスを強制していますが、一部のコンテンツはhttp経由でロードする必要があります(たとえば、ビデオコンテンツはhttps経由ではロードできません)。 mixed-contentsポリシー。

何時間も検索した結果、Content-Security-Policyを使用できることがわかりましたが、混合コンテンツを許可する方法がわかりません。

<meta http-equiv="Content-Security-Policy" content="????">
15
Mustafa Dwekat

できません。

CSPは、ブラウザーの制限を緩和するためではなく、Webサイトのコンテンツを制限するためにあります。

ユーザーに特定の保証が与えられたhttpsサイトを保護し、httpコンテンツの読み込みを許可することは本当に公平ではないため(混合コンテンツの警告)、ユーザーの同意なしにこれらの警告を非表示にできるかどうかは公平ではありません。

CSPをいくつか使用して、httpsへの移行を支援できます。次に例を示します。

  1. これを使用して、http要求をhttpsに自動的にアップグレードできます(ただし、ブラウザーのサポートは普遍的ではありません)。これは、httpリンクをhttps同等のものに変更し忘れた場合に役立ちます。ただし、これはリソースをhttps経由でロードできることを前提としており、https経由でリソースをロードできないように聞こえるため、これはオプションではありません。

  2. また、CSPを使用して、httpリソースがロードされようとしたことを監視できるサービスにメッセージを報告することにより、サイトで見逃したhttpリソースを特定することもできます。これにより、httpsへのhttpリンクを識別して修正できるため、上記の自動アップグレードに依存する必要がありません。

しかし、どちらもあなたが本当に探しているものではありません。

14
Barry Pollard

すべきではありませんが...できますが、機能のデモが行われます ここ オンザフライでHTTPSに変換されるHTTP PNG画像。

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

新しいパーミッションAPI ここで説明 も追加されました。これにより、Webサーバーは、位置情報、プッシュ、通知、Web MIDIなどの機能に対するユーザーのパーミッションを確認できます。

8
nodws