Content-Security-Policy-Objekt-Quellcode-Blob
Beim Einsatz eines content-security-policy, und ich versuche zu Folgen, ein Prozess, in Chrome 41 (beta) mit Fenster.URL.createObjectURL bekomme ich eine Fehlermeldung wie die folgende:
Weigerte load plugin die Daten aus dem blob:http%3A//localhost%3A7000/f59612b8-c760-43a4-98cd-fe2a44648393', da Sie gegen die folgende Content-Security-Policy Richtlinie: "object-src blob://*"
Mit einer content-security-policy, die beschränkt object-src
oder sonst default-src
kann man das Problem reproduzieren (mit jQuery für die Bequemlichkeit) wie folgt:
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)
Scheint es, von die Spezifikation, dass das funktionieren sollte, wie es für data://*
. Ich habe auch versucht blob
, blob:
, blob:*
, blob:http*
, blob:http:*
, blob:http://*
, aber ohne Erfolg.
Was funktioniert, aber aus naheliegenden Gründen unerwünscht ist, ist object-src *
.
Hat jemand hatte keinen Erfolg bekommen blobs zu laden, die mit einem content-security-policy? Ist das ein upstream-problem, oder habe ich etwas übersehen?
InformationsquelleAutor der Frage Brian M. Hunt | 2015-02-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Spec-konforme Antwort ist
object-src 'self' blob:
blob:
sollte nur passenblob:
ausdrücklich und nicht'self'
oder*
. Dies ist ein Fehler in Chrome, und wurde vor kurzem behoben, Firefox 40.InformationsquelleAutor der Antwort Adria
Für Chrome 47.0.2526.73:
default-src - * blob:;
war für mich
InformationsquelleAutor der Antwort grigno
Eine Abhilfe wäre die Verwendung
object-src 'self'
.InformationsquelleAutor der Antwort Brian M. Hunt