唯一的设备标识
Unique device identification
我们正在开发内部基于网络的应用程序,用于在智能手机和平板电脑上查看数据报告。我们的客户要求我们是否有可能只有某些设备可以访问内容。因此,我们使用基于javascript/HTML5的技术,我们无法读取像IMEI或设备uuid这样的唯一ID。这个想法是能够使用上述技术自动创建与时间无关的设备指纹。
问题是我们是否能够使用javascript/HTML5创建唯一的设备指纹?
线索可能是浏览器可用或已知的信息(例如 http://browserspy.dk/)
您可以使用指纹JS2库,它对计算浏览器指纹有很大帮助。
顺便说一下,在Panopticlick上,您可以看到这通常是多么独特。
看起来phoneGap插件将允许您获取设备的uid。
http://docs.phonegap.com/en/3.0.0/cordova_device_device.md.html#device.uuid
更新:这取决于运行本机代码。 我们使用此解决方案编写 JavaScript,该脚本被编译为我们正在创建的本机手机应用程序的本机代码。
你可以使用这个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
];
我有以下想法,您可以如何处理此类访问设备ID(ADID):
阿迪德将军
- 准备受信任的用户(例如经理)可以从设备登录的网页 https://mypage.com/manager-login - 该页面应显示"授予对此设备的访问权限"按钮
- 当用户按下按钮时,页面向服务器发送请求以生成ADID
- 服务器代ADID,将其存储在白名单中并返回页面
- 然后将其页面存储在设备本地存储中
- 受信任的用户现在注销。
使用设备
- 然后其他用户(例如使用同一设备的员工)转到 https://mypage.com/statistics 并将页面发送到服务器请求统计信息,包括参数ADID(以前存储在本地存储中)
- 服务器检查 ADID 是否在白名单上,如果是,则返回数据
在这种方法中,只要用户使用相同的浏览器并且不重置设备,设备就可以访问数据。如果有人进行了设备重置,则受信任的用户再次需要登录并生成ADID。
您甚至可以为受信任的用户创建一些ADID管理系统,在生成ADID时,他还可以输入设备序列号,将来在设备重置的情况下,他可以找到此设备并为其重新生成ADID(这不会增加白名单大小),并且他还可以从白名单中删除一些ADID,对于他将不再访问服务器数据的设备。
如果系统使用许多域/子域,则登录后管理器应看到许多"从域 xyz.com 授予对此设备的访问权限"按钮 - 每个按钮将重定向设备执行正确的域,gent ADID并重定向回来。
更新
基于链接的更简单方法:
- 经理使用任何设备登录到系统并生成一次性使用链接 https://mypage.com/access-link/ZD34jse24Sfses3J(例如 24 小时有效)。
- 然后经理将此链接发送给员工(或其他人;例如通过电子邮件),员工将该链接放入设备,服务器将ADID返回给将其存储在本地存储中的设备。上面的链接停止工作后 - 所以只有系统和设备知道ADID
- 然后使用此设备的员工可以从 https://mypage.com/statistics 读取数据,因为它具有服务器白名单上的ADID
- 使用onkeyup JS事件检查输入的值是否唯一
- 当同一浏览器的两个实例浏览时,Javascript页面如何具有唯一的ID
- JavaScript-用唯一属性标识对象
- 挖空映射 - 使用键唯一标识嵌套对象
- 唯一标识父类的元素
- 唯一标识重复的Chrome选项卡
- 唯一标识文件而无需下载
- D3.js如何在组条形图中唯一标识单个条形
- 如何在复选框更改单击时唯一标识 jQuery 函数
- 唯一的设备标识
- 网站的唯一用户标识
- 有没有一种方法可以为我的Chrome扩展唯一标识内容脚本运行的iframe
- 我应该使用Javascript或PHP设置一个全局变量来唯一标识web应用程序中的每个页面吗
- 在JavaScript中生成一个(非udid)标识符来唯一标识iOS设备
- 如何在没有唯一标识属性但有HTML注释的情况下使用jQuery选择HTML
- 唯一标识Flash内容
- 用node.js在POST请求中唯一标识用户
- 在使用HTML5文件API上传之前唯一标识文件
- 唯一标识向Web API发出请求的客户端的内容
- 这是唯一标识从Ajax到Servlet请求的客户机状态的最佳选择