Content-security-policyを使用して、Chrome 41(ベータ)で window.URL.createObjectURL のプロセスを実行しようとすると、次のようなエラーが表示されます:
次のコンテンツセキュリティポリシーディレクティブに違反するため、「blob:http%3A // localhost%3A7000/f59612b8-c760-43a4-98cd-fe2a44648393」からプラグインデータをロードすることを拒否しました: "object-src blob:// *"
object-src
またはdefault-src
を制限するコンテンツセキュリティポリシーを使用すると、次のように(便宜上jQueryを使用して)問題を再現できます。
blob = new Blob(
["%PDF-1.\ntrailer<</Root<</Pages<</Kids[<</MediaBox[0 0 3 3]>>]>>>>>>"],
{ type: "application/pdf" })
$("<embed>").attr("src", window.URL.createObjectURL(blob))
.appendTo(document.body)
data://*
の場合と同様、 これが機能するはずの仕様 のようです。 blob
、blob:
、blob:*
、blob:http*
、blob:http:*
、blob:http://*
も試してみましたが、役に立ちませんでした。
動作しますが、明らかな理由で望ましくないのはobject-src *
です。
コンテンツセキュリティポリシーをBLOBに読み込むことに成功した人はいますか?これはアップストリームの問題ですか、それとも何かを見落としていませんか?
Chrome 47.0.2526.73:
default-src * blob :;
私のために働いた