由 Disqus.com 添加的 scorecardsresearch.com/beacon.js 有什么作用?

信息安全 javascript xss 网络服务
2021-08-26 07:59:13

我最近将 Disqus 添加到我的网站。查看 Firebug 上的“脚本”选项卡,我注意到一个名为http://scorecardresearch.com/beacon.js的脚本(这是一个美化版本- 无法通过提供的 url 直接访问该脚本)。

beacon.js 是做什么的?这份报告是什么意思?

据我了解,beacon.js 和 cookie 一起对访问者进行了大量跟踪,但我不清楚细节和含义。

这是页面上唯一显示 beacon.js 脚本的硬编码 JS

<script type="text/javascript">
    /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
    var disqus_shortname = 'netlumination'; // required: replace example with your forum shortname

    /* * * DON'T EDIT BELOW THIS LINE * * */ (function () {
        var dsq = document.createElement('script');
        dsq.type = 'text/javascript';
        dsq.async = true;
        dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
        (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
    })();
</script>

以上内容最终修改了我页面上的 html,以包含指向“scorecardresearch.com/beaons.js”的脚本链接

这是我在 Chrome 隐身模式下完全注销时对 scorecardresearch.com 的获取请求:

http://b.scorecardresearch.com/b2?c1=7&c2=10137436&c3=1&ns__t=1356321346996&ns_c=UTF-8&c8=Disqus%20Comments&c7=http%3A%2F%2Fdisqus.com%2Fembed%2Fcomments%2F%3Ff%3Dnetlumination%26t_u%3Dhttp%253A%252F%252Fnetlumination.com%252Fdo-not-stop-not-thinking-negatively%252F%26t_t%3DDo%2520not%2520stop%2520not%2520thinking%2520negatively%26s_o%3Dpopular%231&c9=http%3A%2F%2Fnetlumination.com%2Fdo-not-stop-not-thinking-negatively%2F

这是 Disqus 的嵌入脚本,它也添加了 scorecardresearch.com 和 google-analytics:

http://mediacdn.disqus.com/1356132141/build/next/embed.js

embed.js 的美化版


我的问题:

  1. 由于脚本标签在我的页面上,我是否实质上允许 scorecardresearch.com 访问我的用户和我的域的用户 cookie?
  2. 这是什么意思?我假设他们有同样的能力来解析我的用户流量,比如谷歌分析。
  3. 他们是否可以使用存储在我网站上的 Disqus cookie 登录到用户的 Disqus 帐户或以某种方式访问​​另一个域上的 Disqus?
  4. 那个xss报告有什么实际意义?
  5. 在您的网站上允许第三方 cookie 有什么缺点?
4个回答

由于脚本标签在我的页面上,我是否实质上允许 scorecardresearch.com 访问我的用户和我的域的用户 cookie?

是的。页面中直接或间接(通过 disqus)包含的任何脚本都具有完全访问权限,可以干扰用户对包含它的主机名上的所有内容的体验。

窃取客户端(非 httponly)cookie 只是一种潜在的攻击——如果他们愿意,他们可以包括一个 JavaScript 键盘记录器来拦截您网站上的所有按键、窃取密码、使用户自动删除他们的帐户等等。

您必须确定您对 Disqus 及其合作伙伴的信任程度,并评估您网站上的材料的敏感程度,以得出关于这种访问级别是否是可以接受的讨价还价的结论,以获得免费聊天系统的好处. 我是一个偏执的人,可以回想起 TMRG (scorecardresearch) 将他们的 MarketScore 间谍软件静默安装在软件包中的日子,所以我个人并不热衷。

如果您对此感到担心,但仍想保留聊天功能,一个潜在的解决方法可能是将聊天包含在从另一个域提供的 iframe 中,该域无法通过脚本访问您的主站点域。

据我了解,beacon.js 和 cookie 一起对访问者进行了跟踪

是的。

这份报告是什么意思?

这是对信标服务的自动漏洞扫描;尚未手动处理它以评估检测到的问题实际存在多少问题。

根据此处列出的问题,我们能够将未转义的 HTML 内容注入 scorecardresearch.com 的文件中。这通常是一个 XSS 漏洞,尽管被注入 JavaScript 文件的文件缓解了这一漏洞。因此,如果您可以使用浏览器访问该地址,您可以将其注入 scorecardresearch.com,而浏览器可能会因为存在<html>. 这是“MIME 嗅探”,对于旧版浏览器来说通常是一个更大的问题。

无论如何,这可能不会影响您。您正在将 scorecardressearch 中的脚本包含到您站点的安全上下文中,而不是使用 scorecardresearch 可能受损的自己的上下文。将文件包含为 a<script>不会给 MIME 嗅探任何机会将字符串文字内容误解为 HTML,并且没有证据表明脚本中有任何漏洞会导致内容脱离 Javascript 字符串文字(未转义的引号) .

我在 Disqus 工作,我觉得上面的答案对于我们的应用程序是如何工作的是错误的。

基本上,我们的应用程序几乎完全加载在 iframe 中。这极大地改变了您的网站暴露于我们的代码和第 3 方代码的方式。

由于脚本标签在我的页面上,我是否实质上允许 scorecardresearch.com 访问我的用户和我的域的用户 cookie?

不会。这些脚本 (beacon.js) 加载在 iframe 中,位于 disqus.com (disqus.com/embed/comments) 提供的文档上。由于同源策略,此代码无法访问您的文档,也无法访问与您网站域关联的 cookie。

这是什么意思?我假设他们有同样的能力来解析我的用户流量,比如谷歌分析。

加载在 iframe 中的信标代码可能会查看文档的引用 URL(父页面 URL)。

他们是否可以使用存储在我网站上的 Disqus cookie 登录到用户的 Disqus 帐户或以某种方式访问​​另一个域上的 Disqus?

Disqus cookie 不会存储在您的网站上;它们与 disqus.com 相关联。所以,是的,脚本可能读取和滥用用户的 Disqus cookie。但这极不可能——scorecardresearch.com/beacon.js 实际上是 comScore——最大的网络分析公司之一。

那个xss报告有什么实际意义?

上面的答案很好地涵盖了这一点:https ://security.stackexchange.com/a/26005/42794

但值得一提的是,Disqus 提供Content Security Policy标头来防止内联脚本执行,从而极大地缓解了 XSS 攻击。

考虑完全停止使用 Disqus 或任何其他插入 scorecardresearch.com 脚本的社交脚本/插件,因为 scorecardresearch.com 和 voicefive.com 脚本已被证明会导致无休止的页面加载,并且会对您的 SEO 产生负面影响,因为 Google 喜欢查看页面加载异步的禁食和脚本。这是一篇关于为什么 Scorecardresearch.com 和 voicefive.com 有害的文章。您遇到的脚本越多,问题就越多。

http://techlivewire.com/2385/remove-scorecard-research-and-voicefive-from-wordpress.html

非常一般地,信标是定期发送的消息,它被传输到服务提供商以表明用户仍然存在。信标示例包括 Wi-Fi 接入点(指示其存在)、谷歌分析(用户的信标显示用户在网站上停留了多长时间)等。

顺便说一句,SuperUser 可以更好地回答这个问题。