68

我们正在开发基于网络的内部应用程序,用于查看数据报告,同时针对智能手机和平板电脑。我们的客户询问我们是否有可能只有某些设备才能访问内容。因此,我们使用基于 javascript/HTML5 的技术,我们无法读取唯一 ID,例如 IMEI 或设备 uuid。这个想法是能够使用上述技术自动创建与时间无关的设备指纹。

问题是我们是否能够使用 javascript/HTML5 创建唯一的设备指纹?

线索可能是浏览器可用或已知的信息(例如http://browserspy.dk/

4

4 回答 4

99

您可以使用fingerprintJS2库,它对计算浏览器指纹有很大帮助。

顺便说一句,在Panopticlick上,您可以看到这通常是多么独特。

于 2013-09-11T10:19:32.897 回答
4

It looks like the phoneGap plugin will allow you to get the device's uid.

http://docs.phonegap.com/en/3.0.0/cordova_device_device.md.html#device.uuid

Update: This is dependent on running native code. We used this solution writing javascript that was being compiled to native code for a native phone application we were creating.

于 2014-06-12T17:26:51.337 回答
2

我有以下想法如何处理此类访问设备 ID (ADID):

一代 ADID

  • 准备网页https://mypage.com/manager-login受信任的用户(例如经理)可以从设备登录 - 该页面应显示按钮“授予对该设备的访问权限”
  • 当用户按下按钮时,页面向服务器发送请求以生成 ADID
  • 服务器生成ADID,将其存储在白名单中并返回页面
  • 然后将其页面存储在设备本地存储中
  • 受信任的用户现在注销。

使用设备

  • 然后使用相同设备的其他用户(例如员工)转到https://mypage.com/statistics并将页面发送到服务器请求以获取包括参数 ADID 在内的统计信息(之前存储在本地存储中)
  • 服务器检查ADID是否在白名单上,如果是则返回数据

在这种方法中,只要用户使用相同的浏览器并且不重置设备,设备就可以访问数据。如果有人进行了设备重置,则再次受信任的用户需要登录并生成 ADID。

您甚至可以为受信任的用户创建一些 ADID 管理系统,在生成 ADID 时,他还可以输入设备序列号,并且将来在设备重置的情况下,他可以找到该设备并为其重新生成 ADID(这不会增加白名单的大小),他也可以从他不再允许访问服务器数据的设备的白名单中删除一些 ADID。

如果系统使用许多域/子域,登录后管理员应该会看到许多“从域 xyz.com 访问此设备”按钮 - 每个按钮将重定向设备执行正确的域、gent ADID 并重定向回来。

更新

基于链接的更简单方法:

于 2019-04-12T17:29:50.067 回答
0

你可以使用这个 javascript 插件

https://github.com/biggora/device-uuid

它可以为您获取有关手机和台式机的大量信息,例如包括 uuid

var uuid = new DeviceUUID().get();

e9dc90ac-d03d-4f01-a7bb-873e14556d8e

var dua = [
    du.language,
    du.platform,
    du.os,
    du.cpuCores,
    du.isAuthoritative,
    du.silkAccelerated,
    du.isKindleFire,
    du.isDesktop,
    du.isMobile,
    du.isTablet,
    du.isWindows,
    du.isLinux,
    du.isLinux64,
    du.isMac,
    du.isiPad,
    du.isiPhone,
    du.isiPod,
    du.isSmartTV,
    du.pixelDepth,
    du.isTouchScreen
];
于 2021-01-25T06:57:53.943 回答