Javascript 唯一设备标识
我们正在开发内部基于web的应用程序,用于在智能手机和平板电脑上查看数据报告。我们的客户向我们询问只有某些设备才能访问内容的可能性。因此,我们使用基于javascript/HTML5的技术,无法读取IMEI或设备uuid等唯一ID。其想法是能够使用上述技术自动创建与时间无关的设备指纹 问题是我们是否能够使用javascript/HTML5创建唯一的设备指纹 线索可能是可用的或浏览器已知的信息(例如)您可以使用该库,它对计算浏览器指纹有很大帮助Javascript 唯一设备标识,javascript,jquery,html,Javascript,Jquery,Html,我们正在开发内部基于web的应用程序,用于在智能手机和平板电脑上查看数据报告。我们的客户向我们询问只有某些设备才能访问内容的可能性。因此,我们使用基于javascript/HTML5的技术,无法读取IMEI或设备uuid等唯一ID。其想法是能够使用上述技术自动创建与时间无关的设备指纹 问题是我们是否能够使用javascript/HTML5创建唯一的设备指纹 线索可能是可用的或浏览器已知的信息(例如)您可以使用该库,它对计算浏览器指纹有很大帮助 顺便说一下,在上你可以看到这通常是多么独特。看起来p
顺便说一下,在上你可以看到这通常是多么独特。看起来phoneGap插件将允许你获取设备的uid
更新:这取决于运行本机代码。我们使用此解决方案编写javascript,该javascript被编译为我们正在创建的本机电话应用程序的本机代码。我有以下想法,您可以处理这样的访问设备ID(ADID): 阿迪德将军
- 准备可信用户(如经理)可以从设备登录的网页-该网页应显示“允许访问此设备”按钮
- 当用户按下按钮时,页面向服务器发送请求以生成ADID
- 服务器gen ADID,将其存储在白名单上并返回页面
- 然后页面将其存储在设备localstorage
- 受信任的用户现在注销
- 然后,其他用户(例如使用同一设备的员工)转到页面并向服务器发送统计信息请求,包括参数ADID(以前存储在localstorage中)
- 服务器检查ADID是否在白名单上,如果是,则返回数据
- 管理员使用任何设备登录系统并生成一次性使用链接(例如24小时)
- 然后,经理将此链接发送给员工(或其他人,例如通过电子邮件),员工将该链接放入设备,服务器将ADID返回到设备,设备将其存储在本地存储器中。在上面的链接停止工作后,只有系统和设备知道ADID
- 然后,使用此设备的员工可以从中读取数据,因为它具有ADID,该ADID位于服务器白名单上
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
];
我想你会希望这一切都在幕后,可以这么说吗?就像没有必须输入的密码或其他什么?此外,对于某些设备,你是说只有手机和平板电脑可以访问它,还是只有某些单独的设备,比如只有员工的手机可以访问它?类似的问题你可能会发现很有用:你在谈论JS和HTML5,但这只是前端技术。在服务器端,您可以使用设备请求中的MAC地址,但即使这样也不安全,因为它很容易被欺骗。我会选择一些标准的基于用户的身份验证,而不是基于设备的身份验证。它必须是基于web的应用程序吗?可能是安装在设备上的应用程序,但使用web技术(html/javascript等)编写?@TauWich如果您想从运行应用程序的设备获取系统信息,则需要运行本机代码。我想不出比PhoneGap更好的方法了。您可以注册新用户并将其链接到IMEI。在大多数人的世界里,这是万无一失的。不过,你的“独特指纹”会随着这种方法而定期变化。你所需要做的就是添加/删除浏览器插件或系统字体,这样你就不再被归类为同一个浏览器了。没错,但据我们所知,没有其他方法。创建cookie(或支架内cookie)以忽略指纹中将来的更改可能是一个好主意。@Archer:你是对的,但我希望此方法能为持久指纹提供足够的时间。在移动平台上更改例如systemfont并不容易。我马上就要测试它。@PawełS:没有明显的持久性cookie或其他类型的web存储,请参阅我关于这个主题的问题:@TauWich大多数应用程序在Android设备上下载并安装字体。。。自己更改字体是非常容易和常见的。很抱歉,但我不认为有任何方法可以依赖这个建议——只是我的观点:)如果这实际上是在浏览器javascript上下文中单独工作的,那么为什么库不使用它呢?据我所知,phonegap是一个移动web应用程序开发库,而不是一个独立的javascript库。如果这真的起作用,它将摧毁任何剩余的web浏览匿名性概念。。。此“功能”将违反每个人在浏览网页时对隐私的期望。Cordova插件依赖于运行本机代码(例如,Android的java,iPhone的objective-C),因此它不是一个纯javascript解决方案。虽然此链接可以回答这个问题,但最好包括