当脚本未能通过内容安全策略时,Disqus仅起作用

时间:2018-12-23 19:38:18

标签: cors content-security-policy disqus

我一直在与博客页面上的Disqus断断续续的问题作斗争。这个问题很难解决,因为它会偶尔出现。

设法将问题归结为:

  1. 如果以下脚本由于内容安全策略而无法加载,则一切正常,并显示iframe。

Console errors on disqus load

  1. 将域添加到Disqus上的授权域列表中可以实现以下进展,并且该问题现在不那么普遍了,但是仍然不完美,刷新页面将阻止iframe加载,再次刷新并显示!

Console errors after adding auth domain

如果有人对我如何使它正常工作有任何想法,将不胜感激。

1 个答案:

答案 0 :(得分:0)

从表面上看,您的CSP排除列表中几乎没有任何指令。我建议如下:

  1. 使用report-uri之类的工具来报告您域中违反CSP的行为。根据我的经验,Report-URI可以节省生命。

  2. 如果您是第一次在应用程序中应用CSP策略,请从CSP-Report only开始。

  

HTTP Content-Security-Policy-Report-Only响应标头允许Web开发人员通过监视来试验策略(但   不强制执行)。这些违规报告包含JSON   通过HTTP POST请求发送到指定URI的文档。

这很重要,因为您不能手动检查所有违规情况。最好确定一段时间内的所有违规行为,并使您的CSP政策更具限制性。

  1. 一旦您对CSP策略有信心,那么您就可以更加自信地创建CSP策略。但是,请确保仍将违规行为报告给report-uri或您的日志记录。

其中许多事情都是反复试验,因为您不知道第三方库“ 受信任的 ”使用的脚本是什么。您也无法控制其代码/实现是否在后台更改。因此,监视可以帮助您不断确定违规情况并采取适当的措施。