内容安全策略不适用于Ionic serve

Content Security Policy not working for Ionic serve

本文关键字:Ionic serve 适用于 不适用 安全策略      更新时间:2023-09-26

在我的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(时,我得到以下错误:

拒绝加载脚本'http://localhost:35729/livereload.js?snipver=1因为它违反了以下内容安全策略指令:"script src'self'"不安全内联"不安全评估"http://localhost:8100">

有人知道怎么解决这个问题吗?

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

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

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

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