2

WebUSBアプリケーションがユーザーのマシンに接続された特定のデバイスにアクセスできるようにする新しい API を発見しました。

開発の一環として、ユーザーのデバイスをマップしたいと考えています (たとえば、VendorID と ProductID を照会して、接続されているデバイスのリストを表示します)。

ユーザーの使用可能なすべてのデバイスを照会するには、次のコードを使用する必要があることに気付きました: navigator.usb.requestDevice({filters:[]}).

このコードは、セッションに対して特定のデバイスを有効にする必要がある許可メッセージをユーザーに表示します。

私の質問 - 許可なくベンダー ID と製品 ID を照会することは可能ですか? (もちろん、実際のデバイスを使用しようとせずに、クエリを実行するだけです)。

4

1 に答える 1

2

いいえ。デバイスにアクセスするには、 を使用する必要がありますrequestDevice。これは、API の中心的なセキュリティ面の 1 つです。仕様から:

...この API... は、悪意のあるページがデバイスを悪用するのを防ぐために、同様に一般的なメカニズムを必要とします。

これらの保護の最初のものはrequestDevice()機能です。この関数が呼び出されると、UA は許可プロンプトを表示することがあります。悪意のないページであっても、このアクションは、ユーザーがそのような接続が可能であることを認識する前に、サイトがデバイスに接続するのを防ぐことにより、ユーザーのプライバシーを保護します。

ユーザーが特定のデバイスを持っているという事実でさえ、ユーザーの許可なしにページ/アプリがアクセスできない機密情報です。

于 2019-09-01T09:41:24.560 に答える