作为来自客户端的新安全要求的一部分,我在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。该如何解决?
答案 0 :(得分:3)
CSP似乎阻止了您自己的脚本的加载,并且仅允许<script>
中的内联googleapis.com
标记。您应该尝试在CSP规则中添加'self'
,因为这意味着您可以使用自己域中的脚本。
script-src 'self' 'unsafe-inline' *.googleapis.com;