内容安全政策不适用于Ionic服务

时间:2015-07-05 13:04:28

标签: javascript cordova ionic-framework

在我的index.html我有一个元标记:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">

当我运行ionic serve(Ionic版本为1.6.1)时,我收到以下错误:

  

拒绝加载脚本   &#39; http://localhost:35729/livereload.js?snipver=1&#39;因为它违反了   以下内容安全策略指令:&#34; script-src&#39; self&#39;   &#39;不安全直插&#39; &#39;不安全-EVAL&#39; http://localhost:8100&#34;

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

我注意到,您已将script-src设置为self,这意味着脚本将仅使用相同的来源(主机名)从您的域加载。

在Web服务器上运行时,您的端口号已更改,因为它选择随机选择的端口来运行应用程序。我对Ionic服务器没有任何了解,但对于CSP,我可以得出结论。

在您的情况下,localhost:35729localhost:8100显然不相同,因此策略标头会阻止加载脚本。

要解决此问题,最好使用应用的主机名。此外,CSP如果您通过HTTP response header而不是meta标记发送,效果会更好。如果您有任何疑问,请告诉我。