github-pages - github 页面上 Disqus 的 CSP 错误

标签 github-pages disqus content-security-policy

我有一个 jekyll based bloggithub pages评论由 Disqus 提供。或者更准确地说:他们过去常常由 Disqus 提供服务。我发现,Disqus 的内容无法加载。

在 Chrome 中,我在控制台中看到以下错误:

Refused to load the script 'data:application/javascript;base64,KGZ1bmN0aW9uKCkgewoJdmFyIG5vb3BmbiA9IGZ1…gpKTsKCQkJfQoJCX0KCX0pKCk7Cgl3aW5kb3cuX2dhcSA9IGdhcS5xZiA9IGdhcTsKfSkoKTs=' because it violates the following Content Security Policy directive: "script-src https://.twitter.com: https://a.disquscdn.com .services.disqus.com: https://c.disquscdn.com http://.twitter.com: https://apis.google.com/js/api.js http://a.disquscdn.com https://cdn.syndication.twimg.com/tweets.json https://.services.disqus.com: https://connect.facebook.net/en_US/sdk.js https://referrer.disqus.com/juggler/ 'unsafe-eval' a.disquscdn.com http://disqus.com https://ssl.google-analytics.com https://disqus.com".

我一开始以为 Disqus 在做傻事,但我发现 this article这让我觉得我做错了什么,比如使用 jquery 加载 Disqus。但我看不出是什么导致了这个问题。

我的另一个想法是,也许我的 cookie 横幅或 privace badger 导致了问题,但 Privacy Badger 配置为仅阻止网站上的谷歌分析,即使允许这样做,也无法使其正常工作。

在本地运行 jekyll serve 时,一切都按预期工作。

我暂时将 cookie 横幅排除在问题的根源之外,对 Disqus 没有任何影响

我不认为this SO question是同样的问题,因为我没有 iframe。

我的实际问题由三部分组成:

  1. 如何调试此类问题?
  2. 问题的根本原因是什么?
  3. 我该如何解决?

最佳答案

在您的 disqus_config 中,您有:

this.page.url = 'http://blog.schauderhaft.dehttp://blog.schauderhaft.de/';

因为硬编码的基本 URL 和 | 的组合前置:site.url in _includes/disqus.html :

this.page.url = 'http://blog.schauderhaft.de{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}';

这应该可以正常工作:

this.page.url = '{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}';

如果禁用所有扩展,CSP 错误应该会消失。这可能是 Disqus 试图解决他们在启用 CSP 时无法正确测试的阻止程序;没有来源很难说。

关于github-pages - github 页面上 Disqus 的 CSP 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41530097/

相关文章:

ruby - jekyll-github-metadata 中的 SSL 证书验证失败

css - 我在 jekyll 和 github 页面中错过了什么来使语法高亮工作?

html - 将 .CSV 数据放入 HTML(Github 页面)

ajax - 同一页面上有多个 DISQUS?

javascript - 防止 Facebook "Like"跨域错误的解决方法?

permissions - 闪电不允许权限策略

maven - 在 github 上托管 Maven 存储库

ios - 内容安全策略破坏了 iOS 客户端的站点

google-chrome - Safari 只有 : Refused to connect to . .. 因为它没有出现在内容安全策略的 connect-src 指令中

javascript - 将 Facebook 评论导入 Disqus