apps/api/src/adaptateurs/sortant.ts
0 → 100644
+214
−0
+20
−10
+7
−0
Loading
Deux fonctions laissent une organisation désigner une adresse que le serveur ira chercher : les sources de veille et la passerelle de diffusion générique. C'est délibéré — c'est ce qui évite qu'ajouter un opérateur devienne une version du produit à attendre pendant une crise. Mais rien ne vérifiait où ces adresses pointaient. Le serveur atteignait donc la base, le cache et le stockage objet que la composition publie sur la boucle locale, ainsi que le point de métadonnées d'un hébergeur, qui rend des identifiants. La passerelle générique autorisait même explicitement « http://127.0.0.1 », et remontait les deux cents premiers octets de la réponse dans son message d'erreur : la lecture était donc offerte avec l'accès. L'inscription étant en libre-service, quiconque pouvait créer un compte devenait propriétaire d'une organisation, donc capable des deux. Les destinations passent maintenant par un chemin unique, qui exige HTTPS, résout le nom et refuse boucle locale, plages privées, lien-local et CGNAT — en IPv4 comme en IPv6, IPv4 encapsulé compris. Les redirections sont suivies à la main pour que chaque saut soit revérifié, et le corps est borné : un flux sans fin est une panne de mémoire à distance. Ce que cela ne ferme pas est dit dans le fichier : le nom est résolu ici puis résolu à nouveau par la pile réseau à la connexion, et épingler la connexion sur l'adresse vérifiée demanderait une dépendance de plus. Les passerelles dont l'hôte est écrit dans le code — OVH, Brevo — n'en relèvent pas : leur adresse n'est pas fournie, elle est connue. Co-Authored-By: Claude (RCA) Signed-off-by:Jordan Grossemy <jordan.grossemy@rca.fr>