Firefox 的 WebUSB 擴充功能:透過原生訊息傳遞實現 USB 裝置存取
本專案提供了一個 Firefox 擴充功能以及一個使用 Rust 編寫的原生存根程式,藉此為瀏覽器增加 WebUSB 功能,讓原本不支援此規範的 Firefox 也能存取 USB 裝置。
背景
這篇文章介紹了名為 awawausb 的開源專案,這是一個專為 Firefox 設計的 WebUSB 擴充功能。由於 Mozilla 出於安全性考量,長期未在 Firefox 核心中原生支援 WebUSB 規範,該專案透過瀏覽器的原生訊息傳遞機制與外部的 Rust 程式(native stub)溝通,試圖填補這項功能缺失,讓 Firefox 使用者也能在網頁上直接操作 USB 裝置。
社群觀點
Hacker News 的討論圍繞著「安全性」與「使用者賦權」之間的權衡展開。反對者如 Orygin 認為,WebUSB 規範目前仍處於草案階段,且存在嚴重的安全隱患,將底層硬體存取權交給瀏覽器無異於遞給使用者一把裝滿子彈的獵槍,隨時可能因誤觸而導致硬體被惡意網站控制。部分評論者擔心技術門檻較低的使用者會無視警告視窗,在不自覺的情況下授權危險操作,因此支持 Mozilla 採取保守立場,甚至建議應透過隱藏的設定開關來限制此類功能,避免一般用戶誤用。
然而,支持者則從實用主義出發,認為 WebUSB 是現代瀏覽器的基礎功能之一。他們指出,與其強迫使用者下載來源不明、權限更高的原生執行檔來驅動硬體,在瀏覽器沙盒環境下進行受限的 USB 存取反而更安全。許多開發者分享了 WebUSB 的成功應用案例,例如在網頁上直接刷寫 GrapheneOS 手機系統、設定客製化鍵盤(如 Wooting)或管理 MiniDisc 裝置。這些案例證明了 WebUSB 能大幅降低跨平台開發的難度,讓使用者無需安裝複雜的驅動程式即可完成硬體配置。
討論中也觸及了技術實現的細節,有留言者提到 Linux 與 Windows 平台在處理使用者空間驅動程式時的差異,並指出 Microsoft OS 2.0 描述符等技術已簡化了 WinUSB 的調用流程。部分資深用戶對 Mozilla 的「家長式管理」感到不滿,認為這種過度保護反而削弱了工具的威力,導致權力使用者不得不轉向 Chromium 陣營。儘管雙方對安全風險的認知存在分歧,但社群普遍認同,若能透過 WebUSB 描述符進行來源檢查或強化授權機制,或許能在便利性與安全性之間找到更好的平衡點。
延伸閱讀
在討論中,網友分享了幾個實用的 WebUSB 與 Web Bluetooth 應用實例,包括用於管理舊式音訊設備的 Web MiniDisc 網站、用於設定可程式化鍵盤的 usevia.app,以及能透過瀏覽器幫小米藍牙溫濕度計刷寫自定義韌體的 GitHub 專案(pvvx/ATC_MiThermometer)。此外,也有人提到 GrapheneOS 的網頁安裝程式是展現 WebUSB 實用價值的代表作。
相關文章
其他收藏 · 0