whatwg spec poligamia monogamia google-chrome blob content-security-policy

google chrome - spec - Content-Security-Policy objeto-src blob



html5 whatwg (3)

Cuando uso una política de seguridad de contenido e intento seguir un proceso en Chrome 41 (beta) usando window.URL.createObjectURL Recibo un error como el siguiente:

Se negó a cargar los datos del complemento desde ''blob: http% 3A // localhost% 3A7000 / f59612b8-c760-43a4-98cd-fe2a44648393'' porque viola la siguiente directiva de Política de seguridad de contenido: "object-src blob: // *

Con una política de seguridad de contenido que restringe object-src o default-src se puede reproducir el problema (con jQuery por conveniencia) de la siguiente manera:

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)

De la especificación parece que esto debería funcionar , como lo hace para los data://* . También he intentado blob , blob: blob:* , blob:http* , blob:http:* , blob:http://* , pero no ha servido de nada.

Lo que sí funciona, pero por razones aparentes es indeseable, es object-src * .

¿Alguien ha tenido éxito en hacer que los blobs se carguen con una política de seguridad de contenido? ¿Se trata de un problema corriente arriba, o he pasado por alto algo?


La respuesta que cumple con las especificaciones es object-src ''self'' blob:

blob: solo debe coincidir con blob: explícitamente, y no ''self'' o * . Se trata de un error en Chrome y se corrigió recientemente en Firefox 40.


Para Chrome 47.0.2526.73:

default-src * blob :;

trabajó para mi


Una solución parece ser usar object-src ''self'' .