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