安全性
頁面從 droid.devpier.dev 提供,但模擬器和閘道執行在你的 Mac 上。你開啟的任何網頁都可能嘗試連接到你 Mac 上的程式,因此閘道會檢查每個連線。
僅限回送位址
Section titled “僅限回送位址”閘道僅在 127.0.0.1 上監聽。它不接受來自本機網路或網際網路的連線。其他電腦無法存取它。
來源允許清單
Section titled “來源允許清單”當頁面開啟 WebSocket 時,瀏覽器會傳送 Origin 標頭。閘道僅接受以下來源:
https://droid.devpier.devhttp://127.0.0.1:<port>http://localhost:<port>
來源不在清單中或無來源的連線會以代碼 4003 關閉。其他網站的頁面無法控制你的模擬器,即使猜到了連接埠。
- 每次閘道啟動時,都會建立一個新的隨機權杖:32 個隨機位元組,編碼為 43 個字元的 base64url 字串。
- 閘道在
#後附上連接埠和權杖開啟頁面:https://droid.devpier.dev/app/#port=<port>&token=<token>。瀏覽器不會將#後的內容傳送到 Web 伺服器,因此權杖不會到達droid.devpier.dev。 - 頁面將連接埠和權杖儲存在瀏覽器的本機儲存體中,以便你可以重新載入頁面,並從位址列移除它們。
- 每個連線的第一條訊息必須攜帶權杖。如果權杖錯誤,閘道會回覆
bad-token錯誤並以代碼4001關閉連線。 - 閘道重新啟動後,舊權杖將失效。請開啟它列印的新連結。
網站不會連接到你的 Mac
Section titled “網站不會連接到你的 Mac”Chrome 的本機網路權限和閘道的來源檢查都是基於網站而非路徑的。因此文件頁面與 /app/ 上的模擬器頁面共享同一權限。為限制其影響:
- 只有
/app/上的模擬器頁面才會連接到閘道。首頁和這些文件頁面不會連接,因此閱讀它們不會觸發權限提示。 - 該網站不載入任何第三方腳本、樣式、字型或媒體。所有內容均從
droid.devpier.dev提供。 - 權杖是第二道檢查:
droid.devpier.dev上沒有權杖的頁面無法使用閘道。
閘道在未經詢問的情況下,不會安裝 Android SDK 套件或建立裝置。它會在終端機中詢問 [y/N],預設答案為否。Android SDK 授權條款需要你自行接受。
連線關閉代碼
Section titled “連線關閉代碼”| 代碼 | 含義 |
|---|---|
4000 |
第一條訊息不是 hello。 |
4001 |
權杖錯誤。 |
4002 |
頁面和閘道使用不同的協定版本。 |
4003 |
來源不被允許。 |
在 github.com/twosugar/android-emu-web 提交 issue。