Sécurité
La page est servie depuis droid.devpier.dev, mais l’émulateur et la passerelle tournent sur votre Mac. N’importe quelle page web que vous ouvrez pourrait tenter de se connecter à un programme sur votre Mac, c’est pourquoi la passerelle vérifie chaque connexion.
Bouclage uniquement
Section intitulée « Bouclage uniquement »La passerelle écoute uniquement sur 127.0.0.1. Elle n’accepte pas de connexions depuis votre réseau local ni depuis Internet. Les autres ordinateurs ne peuvent pas l’atteindre.
Liste d’origines autorisées
Section intitulée « Liste d’origines autorisées »Les navigateurs envoient un en-tête Origin lorsqu’une page ouvre un WebSocket. La passerelle n’accepte que ces origines :
https://droid.devpier.devhttp://127.0.0.1:<port>http://localhost:<port>
Une connexion avec toute autre origine, ou sans origine, est fermée avec le code 4003. Une page d’un autre site ne peut pas contrôler votre émulateur, même si elle devine le port.
Jeton de lancement
Section intitulée « Jeton de lancement »- À chaque démarrage, la passerelle crée un nouveau jeton aléatoire : 32 octets aléatoires, encodés en une chaîne base64url de 43 caractères.
- La passerelle ouvre la page avec le port et le jeton après
#:https://droid.devpier.dev/app/#port=<port>&token=<token>. Les navigateurs n’envoient pas la partie située après#au serveur web, donc le jeton n’atteint jamaisdroid.devpier.dev. - La page enregistre le port et le jeton dans le stockage local du navigateur, pour que vous puissiez recharger la page, et les retire de la barre d’adresse.
- Le premier message de chaque connexion doit contenir le jeton. S’il est incorrect, la passerelle répond par une erreur
bad-tokenet ferme la connexion avec le code4001. - Quand la passerelle redémarre, l’ancien jeton cesse de fonctionner. Ouvrez le nouveau lien qu’elle affiche.
Le site web ne se connecte pas à votre Mac
Section intitulée « Le site web ne se connecte pas à votre Mac »L’autorisation d’accès au réseau local de Chrome et la vérification d’origine de la passerelle fonctionnent toutes deux par site, et non par chemin. Les pages de documentation partagent donc l’autorisation avec la page de l’émulateur sous /app/. Pour limiter ce que cela implique :
- Seule la page de l’émulateur sous
/app/se connecte à la passerelle. La page d’accueil et cette documentation ne le font jamais, donc les lire ne déclenche pas la demande d’autorisation. - Le site ne charge aucun script, style, police ou média tiers. Tout est servi depuis
droid.devpier.dev. - Le jeton est une deuxième vérification : une page sur
droid.devpier.devsans le jeton ne peut pas utiliser la passerelle.
Installation de logiciels
Section intitulée « Installation de logiciels »La passerelle n’installe jamais de paquets de l’Android SDK et ne crée jamais d’appareils sans demander. Elle demande [y/N] dans Terminal, et la réponse par défaut est non. C’est vous qui acceptez les licences de l’Android SDK.
Codes de fermeture de connexion
Section intitulée « Codes de fermeture de connexion »| Code | Signification |
|---|---|
4000 |
Le premier message n’était pas hello. |
4001 |
Jeton incorrect. |
4002 |
La page et la passerelle utilisent des versions de protocole différentes. |
4003 |
Origine non autorisée. |
Signaler un problème
Section intitulée « Signaler un problème »Ouvrez une issue sur github.com/twosugar/android-emu-web.