我们正在开发基于网络的内部应用程序,用于查看数据报告,同时针对智能手机和平板电脑。我们的客户询问我们是否有可能只有某些设备才能访问内容。因此,我们使用基于 javascript/HTML5 的技术,我们无法读取唯一 ID,例如 IMEI 或设备 uuid。这个想法是能够使用上述技术自动创建与时间无关的设备指纹。
问题是我们是否能够使用 javascript/HTML5 创建唯一的设备指纹?
线索可能是浏览器可用或已知的信息(例如http://browserspy.dk/)
我们正在开发基于网络的内部应用程序,用于查看数据报告,同时针对智能手机和平板电脑。我们的客户询问我们是否有可能只有某些设备才能访问内容。因此,我们使用基于 javascript/HTML5 的技术,我们无法读取唯一 ID,例如 IMEI 或设备 uuid。这个想法是能够使用上述技术自动创建与时间无关的设备指纹。
问题是我们是否能够使用 javascript/HTML5 创建唯一的设备指纹?
线索可能是浏览器可用或已知的信息(例如http://browserspy.dk/)
您可以使用fingerprintJS2库,它对计算浏览器指纹有很大帮助。
顺便说一句,在Panopticlick上,您可以看到这通常是多么独特。
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.
我有以下想法如何处理此类访问设备 ID (ADID):
一代 ADID
使用设备
在这种方法中,只要用户使用相同的浏览器并且不重置设备,设备就可以访问数据。如果有人进行了设备重置,则再次受信任的用户需要登录并生成 ADID。
您甚至可以为受信任的用户创建一些 ADID 管理系统,在生成 ADID 时,他还可以输入设备序列号,并且将来在设备重置的情况下,他可以找到该设备并为其重新生成 ADID(这不会增加白名单的大小),他也可以从他不再允许访问服务器数据的设备的白名单中删除一些 ADID。
如果系统使用许多域/子域,登录后管理员应该会看到许多“从域 xyz.com 访问此设备”按钮 - 每个按钮将重定向设备执行正确的域、gent ADID 并重定向回来。
基于链接的更简单方法:
你可以使用这个 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
];