feat(sync): http:// limite au reseau local, Basic des la 1re requete
APK : le clair est permis par Android et trie dans TSyncClient.RefusalReason (IsLocalHost : RFC 1918, 127.x, .local, .lan, nom sans point) - chacun pointe vers son propre WebDAV sans IP connue a la compilation ; vers Internet, HTTPS. PC : Authorization Basic envoye d'emblee, plus de 401 anonyme ni de PUT du coffre envoye deux fois. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -434,10 +434,15 @@ l'ouverture, écriture 204, puis synchro du poste qui reprend la modification.
|
||||
- **Une URL qui finit en `.json` n'est plus réécrite** par `normalizeRepoUrl`
|
||||
(elle en faisait une URL d'API Gitea) — sauf les formes longues d'un dépôt,
|
||||
`/src/branch/…` et `/blob/…`.
|
||||
- **Clair autorisé vers `192.168.1.28` seulement** (IP fixe du poste), dans
|
||||
`network_security_config.xml` : le mot de passe WebDAV passe en clair sur le
|
||||
Wi-Fi, le coffre reste chiffré. À retirer quand le serveur parlera HTTPS.
|
||||
Android ne sait pas autoriser « le réseau local » : chaque adresse se nomme.
|
||||
- **`http://` : réseau local seulement**, pour que chacun (les amis compris)
|
||||
pointe vers son propre serveur sans adresse connue à la compilation. Android
|
||||
ne sait autoriser ni plage ni masque : `network_security_config.xml` permet
|
||||
donc le clair partout, et `TSyncClient.RefusalReason` refuse **avant tout
|
||||
envoi** un `http://` dont l'hôte n'est pas local (`IsLocalHost` : RFC 1918,
|
||||
`127.x`, `.local`, `.lan`, nom sans point). Vers Internet, HTTPS obligatoire,
|
||||
et le refus s'affiche dans les réglages. Risque assumé : un Wi-Fi étranger
|
||||
qui réutilise la même plage recevrait le mot de passe WebDAV en clair — le
|
||||
coffre, lui, reste chiffré.
|
||||
- **Côté poste** : pare-feu Windows (règle `WebDAV 8080`, `LocalSubnet`) **et**
|
||||
Portmaster (entrant autorisé pour Python) — sans le second, le port restait
|
||||
fermé malgré la règle.
|
||||
|
||||
Reference in New Issue
Block a user