webusb - WebUSB 闪存驱动器序列号
问题描述
所以我想在我的网站上使用闪存驱动器作为 2FA 的选项(使用设备序列号)。我正在使用 WebUSB,但闪存驱动器不会显示在设备选择窗口中。我已经看到网络 USB 无法读取/写入文件,那么它甚至可以看到闪存驱动器吗?
如果有帮助,这是我的代码:
console.log("test");
usbLookup.addEventListener('click', function() {
navigator.usb.requestDevice({ filters: [{ }] })
.then(device => {
console.log(device.serialNumber);
})
.catch(error => { console.log(error); });
});
<iframe allowpaymentrequest allow='usb'></iframe>
<a id="usbLookup">Get Serial</a>
解决方案
在某些平台上,WebUSB 由于其实现方式的特殊性而无法看到闪存驱动器。
一般来说,这是一个糟糕的第二个因素,因为序列号很容易被猜测和伪造。我建议改用WebAuthn API,它提供对来自多个供应商的真正安全令牌的支持。
推荐阅读
- ruby-on-rails - Rails:如何使用左连接表急切加载?
- azure-active-directory - 将 Azure Data Lake Storage 用户权限与 Apache Ranger 和 Active Directory 同步
- android - 在 Jetbrain IDE 中,如何在方法参数悬停时显示警告?
- c++ - 在neovim上使用coc.vim的cquery中出现奇怪的错误
- javascript - “文件”类型的参数不能分配给“字符串”类型的参数
- angular - Angular6 等待 app.component 中的 ngOnInit 完成,然后在子触发器中等待 ngOnInit
- c# - 为什么不将复选框列设置为 Ultragrid?
- r - R中的Lo和MacKinlay方差比检验
- c# - Blazor 链接 - 如果有 onclick 方法,则禁用 href
- unity3d - 是否可以在 HDRP 中设置 VR?