尽管我使用通配符

时间:2018-03-14 15:51:14

标签: cordova meteor cordova-plugins content-security-policy

在我的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。谁有线索可以提供帮助?

由于

1 个答案:

答案 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策略,就允许资源的网址协议部分不是httpshttpftp,那么您必须在策略中明确指定协议。