在我的Meteor / Cordova项目中,用户可以上传图像。然后将此映像上载到云服务。但之前,我已经想要将上传的图像显示给用户。立即!所以我把cdvfile-Url设置为<img>
s&#34; src&#34;。例如:
<img src="cdvfile://localhost/root/storage/emulated/0/x/y.jpg" />
我的CSP元标记如下所示:
<meta http-equiv="Content-Security-Policy" content="default-src *; img-src *">
不幸的是,这就是我得到的结果,虽然meta标签不是很严格:
拒绝加载图片 &#39; cdvfile://localhost/root/storage/emulated/0/x/y.jpg'因为它 违反了以下内容安全策略指令:&#34; img-src *&#34;。
我尝试过大量的CSP元标记变种而没有运气。我曾尝试使用和不使用cordova-plugin-whitelist
。谁有线索可以提供帮助?
由于
答案 0 :(得分:2)
您需要在策略中明确指定cdvfile:
,如下所示:
<meta http-equiv="Content-Security-Policy"
content="default-src *; img-src * cdvfile:">
原因是每requirements in the CSP spec,*
通配符仅匹配具有“网络方案”的网址,其定义为“a scheme that is "ftp
" or an HTTP(S) scheme”。
因此,一般而言,只要您想制定CSP策略,就允许资源的网址协议部分不是https
,http
或ftp
,那么您必须在策略中明确指定协议。