Sicurezza
La pagina viene servita da droid.devpier.dev, ma l’emulatore e il gateway girano sul tuo Mac. Qualsiasi pagina web che apri potrebbe tentare di connettersi a un programma sul tuo Mac, quindi il gateway controlla ogni connessione.
Solo loopback
Sezione intitolata “Solo loopback”Il gateway è in ascolto solo su 127.0.0.1. Non accetta connessioni dalla tua rete locale né da Internet. Altri computer non possono raggiungerlo.
Elenco di origini consentite
Sezione intitolata “Elenco di origini consentite”I browser inviano un’intestazione Origin quando una pagina apre un WebSocket. Il gateway accetta solo queste origini:
https://droid.devpier.devhttp://127.0.0.1:<port>http://localhost:<port>
Una connessione con qualsiasi altra origine, o senza origine, viene chiusa con il codice 4003. Una pagina su un altro sito non può controllare il tuo emulatore, anche se indovina la porta.
Token di avvio
Sezione intitolata “Token di avvio”- A ogni avvio, il gateway crea un nuovo token casuale: 32 byte casuali, codificati come stringa base64url di 43 caratteri.
- Il gateway apre la pagina con porta e token dopo
#:https://droid.devpier.dev/app/#port=<port>&token=<token>. I browser non inviano al server web la parte dopo#, quindi il token non raggiunge maidroid.devpier.dev. - La pagina salva porta e token nel local storage del browser, così puoi ricaricare la pagina, e li rimuove dalla barra degli indirizzi.
- Il primo messaggio di ogni connessione deve contenere il token. Se è sbagliato, il gateway risponde con un errore
bad-tokene chiude la connessione con il codice4001. - Quando il gateway si riavvia, il vecchio token smette di funzionare. Apri il nuovo link che stampa.
Il sito web non si connette al tuo Mac
Sezione intitolata “Il sito web non si connette al tuo Mac”L’autorizzazione di Chrome per la rete locale e il controllo dell’origine del gateway funzionano entrambi per sito, non per percorso. Quindi le pagine della documentazione condividono l’autorizzazione con la pagina dell’emulatore in /app/. Per limitare le conseguenze:
- Solo la pagina dell’emulatore in
/app/si connette al gateway. La home page e questa documentazione non lo fanno mai, quindi leggerle non fa comparire la richiesta di autorizzazione. - Il sito non carica script, stili, font o contenuti multimediali di terze parti. Tutto viene servito da
droid.devpier.dev. - Il token è un secondo controllo: una pagina su
droid.devpier.devsenza il token non può usare il gateway.
Installazione di software
Sezione intitolata “Installazione di software”Il gateway non installa mai pacchetti dell’Android SDK né crea dispositivi senza chiedere. Chiede [y/N] nel Terminale, e la risposta predefinita è no. Le licenze dell’Android SDK le accetti tu stesso.
Codici di chiusura della connessione
Sezione intitolata “Codici di chiusura della connessione”| Codice | Significato |
|---|---|
4000 |
Il primo messaggio non era hello. |
4001 |
Token errato. |
4002 |
La pagina e il gateway usano versioni del protocollo diverse. |
4003 |
Origine non consentita. |
Segnalare un problema
Sezione intitolata “Segnalare un problema”Apri una issue su github.com/twosugar/android-emu-web.