我的webapp有一个内容安全策略,它将img-src设置为*(从任何地方加载图像),但Chrome仍会阻止某些图像加载...
拒绝加载图像'data:image/webp; base64,UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA ==',因为它违反了以下内容安全策略指令:"img-src*".lg @js?libraries = places,geometry&v = 3&callback = async_req_1:84(匿名函数)@js?libraries = places,geometry&v = 3&callback = async_req_1:119google.maps.Load @js?libraries = places,geometry&v = 3&callback = async_req_1: 21(匿名函数)@js?libraries = places,geometry&v = 3&callback = async_req_1:118(匿名函数)@js?libraries = places,geometry&v = 3&callback = async_req_1:119
如果我在指令中包含'data:',则控制台中不会显示错误.
img-src*data:;
但是,这不是有效的指令.是否有一个img-src有效的CSP值可以满足Chrome或者这可能是一个Chrome错误?我无法在可访问的错误列表中找到任何直接匹配.我猜测这可能与SVG文件中嵌入的图像有关.Firefox和Safari不会出现此行为.
content-security-policy.com错了.请参阅w3.org/TR/CSP2/#source-list-guid-matching.
如上所述,引用特定内容的特殊URL方案(例如"data:","blob:"和"filesystem:")不匹配*的策略,必须明确列出.
*也不包括'unsafe-inline'或'unsafe-eval'.