【问题标题】:No Cookie / No IP Tracking a Visitor没有 Cookie / 没有 IP 跟踪访客
【发布时间】:2021-08-20 23:18:36
【问题描述】:

问题陈述:跟踪匿名用户以在访问过网站的设备上保持状态(或在计时器后锁定功能)。这需要在禁用 cookie 的情况下跨浏览器工作,包括以隐身模式访问。这也需要特定于设备,家庭网络中的 2 台计算机将有 2 个独立的计时器。

我已经在一些场景中看到了这一点,最近的是带有流计时器的 NBC 奥运会。这对于“免费无注册试用”有很多用途,同时不会放弃所有内容或限制“购买前试用”中的功能。任何想法将不胜感激!

【问题讨论】:

  • “不阻止共享 IP 的两个不同设备相互锁定。”双重否定令人困惑,它与问题标题的“无 IP”部分相矛盾。实际上,您是在说,“一旦计时器过去,该机制应阻止共享相同 IP 地址的所有设备使用某项功能。”但是,您还说该机制不能使用最终用户 IP 地址?我理解正确吗?
  • 更新了措辞以澄清。谢谢。

标签: session cookies user-tracking


【解决方案1】:

为此,您需要采用跨浏览器指纹(或设备指纹)技术。

相关研究

我建议您阅读由 Yinzhi Cao、Song Li 和 Erik Wijmans 撰写的论文 (Cross-)Browser Fingerprinting via OS and Hardware Level Features,其中描述了其中描述的两种技术的 associated demo implementation

我发现的另一篇关于网络指纹技术的好论文,如果您有兴趣,您应该阅读 Web-based Fingerprinting Techniques,作者是 Vítor Bernardo 和 Dulce Domingos。

设备指纹识别的(不)安全性

设备指纹识别的基础是从客户端设备收集各种特征,这些特征指示设备的设备/操作系统,并且在浏览器中保持稳定。收集到足够的数据,一个用户的这些特征的组合很可能在所有用户中都是独一无二的。

对设备指纹识别有用的大多数功能只能在客户端(使用 JavaScript)上测量,然后需要以原始或哈希的形式传回服务器。因此,作为一种安全措施的设备指纹识别还依赖于您混淆执行指纹识别的 JS 和通信指纹的相应网络流量的能力。如果用户能够弄清楚指纹是如何被收集和/或发送回服务器的,那么他们就可以对其进行欺骗以规避您基于它实施的任何保护措施。

可以指纹识别的特征

有用的衡量特征包括(但不限于)

  • GPU 渲染伪像
    • 抗锯齿方法
    • OpenGL 驱动程序varying 插值
    • 纹理采样
  • 安装的字体和书写系统
  • 文本渲染细节
    • 抗锯齿
    • 亚像素渲染
    • 特定字体的字距调整、跟踪和前导可以指示由于安装版本不同而导致的细微变化

就容易实现的目标而言,有一些 Web API(例如 Navigator.hardwareConcurrency)会直接公开有关底层硬件的详细信息,但是现在许多浏览器禁用或欺骗了此功能,以避免将其用于指纹识别。

您收集的特征越多,您的指纹就越可靠,只要它们在同一设备上的不同浏览器中不会有所不同。

结论

归根结底,设备指纹识别没有万全之策,因为它是一个非常复杂的话题,有许多潜在的方法,并且与试图阻止指纹识别技术的浏览器供应商和试图寻找新技术的开发人员不断进行军备竞赛。

如果您正在寻找开箱即用的解决方案,目前有一小部分开源和商业浏览器以及用户指纹识别服务,例如 FingerprintJS(两者兼而有之)。尽管看起来许多设备指纹识别解决方案并未作为独立功能出售,而是作为欺诈预防系统的一部分(例如SEON)或类似功能出售。

(以下仅为意见)

总的来说,我认为设备指纹识别是锁定功能的一个不确定的解决方案,更好的解决方案是使帐户的注册过程尽可能快速和简单(尽管也许免费帐户可以与设备或浏览器指纹识别以缓和对免费试用系统的滥用)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 2014-06-17
    • 2021-07-28
    相关资源
    最近更新 更多