Contenu de la Politique de Sécurité “données” ne fonctionne pas pour les Images en base64 dans Chrome 28
Dans cet exemple simple, je suis en train de définir une CSP en-tête avec le meta http-equiv d'en-tête. J'ai inclus une image en base64 et j'essaie de faire de Chrome charger l'image.
Je pensais que le data
mot-clé devrait le faire,
mais de toute façon ça ne fonctionne pas.
Je viens d'obtenir l'erreur suivante dans les Outils de développement:
Refusé de charger l'image 'data:image/png;base64,R0lGODlhDwAPAOZEAMkJCfAwMMYGBtZMtp75+euIiPFBP+hVVf3v7...nw7yk4Mjr6GLUY+joiBI2QAACABwJDCHgoKOHEoAYVBAgY8ggaxaongamiwmhbcgcckdakbaa7" parce qu'il viole le Contenu suivant la Politique de Sécurité de la directive: "img src" self "données".
L'exemple de code (JSFiddle n'est pas de travail pour cet exemple parce que je ne peux pas définir les méta-tête là):
<html>
<head>
<meta http-equiv="Content-Security-Policy" content="
default-src 'none';
style-src 'self' 'unsafe-inline';
img-src 'self' data;
" />
<style>
#helloCSP {
width: 50px;
height: 50px;
background: url(data:image/png;base64,R0lGODlhDwAPAOZEAMkJCfAwMMYGBtZMTP75+euIiPFBP+hVVf3v7+iHh/JNTfh9dNUYGPjTvskXFfOLi/daVe96es4eHPWIiOqbi9dNRvzWwexdV9U1NeFSS94iIvuxodVGP/ZsZM8jI+ibm/alluQzMdxSSvbGstwsKu2Yid4iIfjQu/JnYO6djvajlMQEBPvLuOJdXeMxL/3jzPBSTdwqKNY2Mf3i4vU5OfbPz/3f3/zUv/zizO0tLc0NDfMzM+UlJekpKeEhId0dHdUVFdkZGdEREf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEQALAAAAAAPAA8AAAepgESCRBsLEDQQCxuDgxYdO5CROx0WgywGAQEKM0M2CpkGN0QvMDmmE0OpE6Y5KEQqPbE9D6lDD7I9IBc8vDwRtRG9PBcuPsY+B7UHxz4hP8/PGghDCBrQPyYxQdvbBUMF3NskGUDl5QwtDOblGSVC7+8JNQnw7yk4Mjr6GLUY+joiBI2QAACABwJDCHgoKOHEoAYVBAgY8GGAxAoNGAmiwMHBCgccKDAKBAA7) no-repeat;
border: 1px solid red;
}
</style>
</head>
<body>
<h1>CSP</h1>
<div id="helloCSP"></div>
</body>
</html>
Vous pouvez également ouvrir cet exemple ici:
https://dl.dropboxusercontent.com/u/638360/ps/csp.html
Vous devez vous connecter pour publier un commentaire.
Selon la grammaire dans la CSP spec, vous devez spécifier les régimes de
scheme:
, pas seulementscheme
. Donc, vous avez besoin de changer la source de l'image directive:img-src * data:;
va travailler pour n'importe quel domaine des images