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

时间:2018-09-06 08:31:47

标签: liferay content-security-policy

作为来自客户端的新安全要求的一部分,我在Liferay应用程序中添加了“内容安全策略”:

private func setupRefreshControl() {
    let refreshControl = UIRefreshControl()
    refreshControl.addTarget(self, action: #selector(refreshWebView(sender:)), for: UIControlEvents.valueChanged)
    webView.scrollView.addSubview(refreshControl)
}

@objc
private func refreshWebView(sender: UIRefreshControl) {
    print("refreshing...")
    webView.load(URLRequest(url: url))
    sender.endRefreshing()
}

但是我遇到了错误

  

拒绝加载脚本“ http://localhost:8080/o/js_loader_modules?t=1536146336645”,因为它违反了以下内容安全政策指令:“ script-src'unsafe-inline'* .googleapis.com”。

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

1 个答案:

答案 0 :(得分:3)

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

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