如何使用javascript识别唯一设备?

问题描述 投票:0回答:4

我想知道当我在实验室上使用网络浏览器登录时,Netflix、Hulu、Sling 等流媒体服务提供商如何识别我的设备。
我找不到任何 Javascript API 来获取 GUID 等。

javascript streaming drm
4个回答
17
投票

您也可以在您的项目中使用fingerprintJS2库。

https://fingerprintjs.com/

这个库如何获取指纹

Fingerprint.js 从设备/浏览器收集所有独特特征,通过哈希函数传递它们以提供唯一标识符。

示例 enter image description here

还有许多其他方法可以获得唯一的浏览器指纹。

获取浏览器信息的最新方法称为“Canvas Fingerprinting”。简单地说,网站是用 HTML5 代码编写的,在该代码中,有一小段代码会获取浏览器的指纹。

那么,网站到底是如何做到这一点的呢?让我解释一下。

网站用于获取浏览器指纹的这种新跟踪方法是通过 HTML5 中的新编码功能启用的。

HTML5 是用于构建网站的编码语言。这是每个网站的核心基础。在 HTML5 编码语言中,有一个称为“canvas”的元素。

最初,HTML 元素用于在网页上绘制图形。

维基百科对

如何利用 HTML5 canvas 元素生成浏览器指纹提供了以下解释:

“当用户访问页面时,指纹识别脚本首先使用其选择的字体和大小绘制文本,并添加背景颜色。接下来,脚本调用 Canvas API 的 ToDataURL 方法来获取 dataURL 格式的画布像素数据,该数据基本上是二进制像素数据的 Base64 编码表示形式。最后,脚本获取文本编码像素数据的哈希值,作为指纹。”

简单来说,这意味着 HTML5 canvas 元素会在网站上生成某些数据,例如访问者浏览器的字体大小和活动背景颜色设置。这些信息作为每个访客的唯一指纹。

与 Cookie 的工作方式相反,画布指纹识别不会将任何内容加载到您的计算机上,因此您将无法删除任何数据,因为它不是存储在您的计算机或设备上,而是存储在其他地方。

来源和进一步阅读:

https://pixelprivacy.com/resources/browser-fingerprinting/

https://multilogin.com/everything-you-need-to-know-about-canvas-fingerprinting/

顺便说一下,你可以通过谷歌搜索获得更多信息。


5
投票
我使用 Fingerprintjs.library 创建浏览器指纹,它适用于所有设备,但是当我在精确配置设备(例如具有精确配置的笔记本电脑)中测试指纹时,它会生成相同的指纹。 在实现之前,我读过很多博客说画布指纹会生成唯一的 base64 字符串,但是当我在具有相同配置的设备中进行测试时,它会生成相同的画布指纹。画布指纹在完全相同或相似的设备中并不唯一。

在使用fingerprint.Js库时,我禁用了一些选项,例如插件、枚举设备、浏览器版本,因为在设备指纹中添加耳机本质上是动态的,将读取耳机信息或相应地生成指纹或与浏览器版本相同。如果将来发生任何变化,指纹也会发生变化。 我的要求是创建一个独特且恒定的指纹,即使在几天后打开浏览器后也不会改变。


0
投票
FingerprintJS 现在已更改其许可证,需要付费许可证才能在生产中使用。 这是创建免费开源替代方案的尝试:

https://github.com/thumbmarkjs/thumbmarkjs


-15
投票
我建议使用 localStorage 并存储一个唯一的白名单 ID,该 ID 在每次登录尝试时都会得到验证。

localStorage.setItem('laazaz_id', '4587ff526d'); localStorage.getItem('laazaz_id'); //returns 4587ff526d
文档:

https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage

© www.soinside.com 2019 - 2024. All rights reserved.