昨天在Stack Overflow上
提出了一个
奇怪的问题 :为什么加载Stack Overflow页面会触发音频内容? 文字网站上有什么样的声音?
开发人员工具的屏幕截图:
答案比预期的要有趣。
作者本人仔细检查了流量,发现请求与脚本有关:
https://static.adsafeprotected.com/sca.17.4.95.js
...,并且仅在页面上通过Google AdSense广告网络投放的特定横幅广告时显示。
读者起初以为这是愚人节的玩笑。 但是其中一位开发人员没有花时间,而是仔细弄清楚了上面脚本的作用。
事实证明,这是一件非常有趣的事情。 事实证明,横幅广告试图将Audio API用作它收集的有关浏览器的
数百个数据之一,并尝试对其进行指纹识别。 无论隐私设置如何,对于唯一标识各个站点上的浏览器都是必要的。 尽管浏览器专门通过音频API阻止了数据传输,但它没有阻止其余大部分数据,因此横幅所有者可以成功地指纹识别并可能使用户匿名。
横幅工作起来绝对不需要发现的功能,也就是说,它不用于启用或禁用某些交互功能。 它们仅一起用于创建用户的唯一“指纹”,然后在为广告商记录分析数据时将横幅和广告ID一起传递。
例如,此片段定义了系统中的显示分辨率和可访问性参数:
function "==typeof matchMedia&&a239.a341.a77 (" all and(min--moz - device - pixel - ratio: 0) and(min - resolution: .001 dpcm) ")},function(){return" function "==typeof matchMedia&&a239.a341.a77 (" all and(-moz - images - in -menus: 0) and(min - resolution: .001 dpcm) ")},function(){return" function "==typeof matchMedia&&a239.a341.a77 (" screen and(-ms - high - contrast: active) and(-webkit - min - device - pixel - ratio: 0), (-ms - high - contrast: none) and(-webkit - min - device - pixel - ratio: 0) ")},function(){return" function "==typeof matchMedia&&a239.a341.a77 (" screen and(-webkit - min - device - pixel - ratio: 0) ")},function(){return"
检查特定的加密API:
return "function" == typeof MSCredentials && a239.a341.a66(MSCredentials) }, function() { return "function" == typeof MSFIDOSignature && a239.a341.a66(MSFIDOSignature) }, function() { return "function" == typeof MSManipulationEvent && a239.a341.a66(MSManipulationEvent) }, function() {
检索已安装字体的列表:
return "object" == typeof document && a239.a341.a68("fonts", document.fonts)
识别音频API功能:
return "undefined" != typeof window && "undefined" !== window.StereoPatternNode && a239.a341.a66(window.StereoPannerNode)
在移动浏览器中定义特定的API:
return "function" == typeof AppBannerPromptResult && a239.a341.a66(AppBannerPromptResult)
验证对特定平台的DRM支持。
}, function() { return !!a239.a341.a72() && a239.a341.a66(a239.a341.a72().webkitGenerateKeyRequest) && a239.a341.a66(a239.a341.a72().webkitCancelKeyRequest) && a239.a341.a66(a239.a341.a72().webkitSetMediaKeys) && a239.a341.a66(a239.a341.a72().webkitAddKey) }, function() {
以及数百个其他参数,这些参数共同构成了浏览器的唯一“肖像”。 为它分配了唯一的ID,然后将其用于跟踪Internet上的用户活动。
指纹识别方法似乎已经离开了“黑暗做法”的范畴,并已被主要的广告商和广告网络公开使用。 广告拦截器有助于防止此类系统扫描。
在这种情况下,广告拦截不仅成为一种方便的选择,而且成为Internet上正常工作的
强制性要求 。 这是防止跟踪的最小但不是充分的要求。
电子前沿基金会长期以来一直警告广告商使用指纹。
Panopticlick工具可在其网站上使用,该工具可模拟敌对跟踪器的操作并确定浏览器指纹的唯一性。

例如,最上面的表格与使用17.67位识别信息的识别来扫描浏览器的实际结果相对应。 这是过去45天在该网站上经过测试的所有208,788用户的独特印刷。
而且这是台式机浏览器,在移动设备上,指纹更容易实现,因为脚本会
扫描来自手机传感器的数据 。 此类脚本可在Internet上的许多大型站点上找到。 扫描传感器有助于阻止漫游器,也可用于跟踪和分析。
Stack Overflow代表
说他们已经意识到了这个问题。 他们不喜欢这种情况,他们想如何应对。 但是事实是,带有跟踪的横幅广告几乎可以在任何网站上找到。

