内容安全策略导致 Liferay 7 项目出错

Content security policy causes error in Liferay 7 project

作为客户新安全要求的一部分,我在我的 Liferay 应用程序中添加了 "Content Security Policy":

response.setHeader(
    "Content-Security-Policy",
    "default-src 'none'; script-src 'unsafe-inline' *.googleapis.com; style-src 'self' *.googleapis.com;font-src 'self' *.gstatic.com;connect-src ; img-src 'self' data:;base-uri 'none';frame-ancestors 'none';");

但是我遇到了以下错误

Refused to load the script 'http://localhost:8080/o/js_loader_modules?t=1536146336645' because it violates the following Content Security Policy directive: "script-src 'unsafe-inline' *.googleapis.com".

本地服务器已启动并且 运行 localhost:8080。如何解决?

CSP 似乎阻止了您自己的脚本加载,并且只允许来自 googleapis.com 的内联 <script> 标签。您应该尝试将 'self' 添加到您的 CSP 规则中,因为这意味着您可以使用自己域中的脚本。

script-src 'self' 'unsafe-inline' *.googleapis.com;