Chrome89发布了WebHid API,但安全性受到限制。
限制包括:
.更多关于链接的文章
有一个提交在铬项目上说,The blocklist may be bypassed by passing allow_protected_reports=true when connecting to the devic。
是否有一种方法可以设置allow_protected_reports=true以绕过UI上的这些限制,如chrome://flags
相关链接:https://web.dev/hid/#security-privacy
2021.10.28更新
MacOS BigSur 11.2.3
Chrome版95.0.4638.54 (官方版本) (x86_64)
用于复制限制:
Javascript cannot receive USB Hid data when user is opening select html element <select>
<option> test </option>
</select>device.addEventListener("inputreport", (e) => {
const data = e.data.buffer;
console.log(new Date(), "received data", data);
});当用户单击"test“select元素打开它时,它将停止接收数据。
Javascript cannot receive USB Hid data when browser tab switched。我现在不能每次在mac+chrome上复制它,而是在选项卡切换的简单测试环境中通过API device.addEventListener("inputreport",...)接收hid设备数据。但是我发现它在我的实际生产React.js应用程序中停止了,它运行了更多的javascript和timers ( setInterval )。
发布于 2021-10-27 17:28:36
不,没有用于绕过HID封锁列表的chrome://标志,而且由于风险,我们不打算添加一个。Chrome的内部HID客户端使用allow_protected_reports标志,不应该为Javascript客户端启用该标志。(如果脚本可以访问受保护的报告,那么实现键盘记录器来捕获密码和其他私有信息就变得非常简单。)
如果你觉得HID的封锁列表阻止了一些不该被屏蔽的东西,请编辑你的问题来分享更多关于你想要访问的设备的信息。您还可以在WebHID规格跟踪器上提交一个bug,其中托管了块列表。
Javascript无法在浏览器选项卡切换时接收USB数据。
这不是有意的,我们期望应用程序需要对HID设备的后台访问,以便在选项卡不可见时正常工作。你能编辑你的问题来添加更多关于你测试的操作系统(和操作系统版本)的信息吗?(或提交一个铬虫)
当用户打开select html元素时Javascript无法接收USB数据
我不知道这意味着什么,你能提供一个测试用例来演示这个问题吗?
https://stackoverflow.com/questions/69671830
复制相似问题