我的网络应用程序有一个内容安全策略,它将img-src设置为*(从任何地方加载图像),但Chrome仍会阻止某些图像加载......
拒绝加载图片 '数据:图像/ WEBP; BASE64,UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA ==' 因为它违反了以下内容安全策略指令: “img-src *”。 lg @ ?JS库=地方,几何&安培; V = 3及回调= async_req_1 :84(匿名 功能)@ ?JS库=地方,几何&安培; V = 3及回调= async_req_1 :119google.maps.Load @ ?JS库=地方,几何&安培; V = 3及回调= async_req_1 :21(匿名 功能)@ ?JS库=地方,几何&安培; V = 3及回调= async_req_1 :118(匿名 功能)@ ?JS库=地方,几何&安培; V = 3及回调= async_req_1 :119
如果我在指令中包含'data:',则控制台中不会显示错误。
img-src * data:;
但是,这不是一个有效的指令。是否有一个img-src有效的CSP值可以满足Chrome或者这可能是一个Chrome错误?我无法在可访问的错误列表中找到任何直接匹配。我猜测这可能与SVG文件中嵌入的图像有关。 Firefox和Safari不会出现这种行为。
答案 0 :(得分:8)
content-security-policy.com错了。见w3.org/TR/CSP2/#source-list-guid-matching。
如上所述,引用特定部分的特殊URL方案 独特内容,例如“data:”,“blob:”和“filesystem:” 排除匹配*的政策,必须明确列出。
*也不包括'unsafe-inline'或'unsafe-eval'。