26 juillet 2026

Un proxy de sécurité en Rust au bord de l'API

si-gateway décide, pour chaque requête, qui passe et sous quelle identité — liste blanche de routes, jetons vérifiés avant PHP, journal d'audit sans secrets. Le jeton d'administration ne vit plus dans un navigateur.

Le secret qui vivait dans un navigateur

Jusqu'au 26 juillet, l'autorisation vivait entièrement dans le code de l'API, sous forme d'attributs posés sur chaque contrôleur. Le back-office, lui, faisait saisir un jeton valable sur l'ensemble du parc et le gardait dans la mémoire de session du navigateur. Une faille dans cet outil valait les clés de tous les sites — sa propre documentation l'écrivait noir sur blanc.

Deux autres défauts tenaient à la même construction. Une route dont on avait oublié l'attribut était ouverte, et cet oubli ne se voyait nulle part. Un jeton forgé, lui, démarrait le framework entier avant d'être refusé — le travail était fait, la facture payée, pour une requête qui n'avait aucun droit.

Fermé par défaut, et vérifié avant PHP

si-gateway est un petit service en Rust posé au bord de l'API. Le serveur web le consulte pour chaque requête, par une sous-requête d'autorisation qui ne transporte pas le corps du message. Il répond à trois questions : cette route est-elle déclarée, ce jeton est-il authentique, et son porteur a-t-il le droit d'entrer sur ce périmètre.

Tout ce qui n'est pas déclaré est refusé — l'inverse exact de la situation d'avant. Les signatures sont vérifiées contre les clés publiques du serveur d'identité, avant qu'une ligne de PHP ne s'exécute. Le périmètre autorisé est ajouté à la requête transmise, et chaque décision part dans un journal d'audit qui ne contient aucun secret.

Il ne remplace pas l'API, il la précède

Les contrôles de l'API n'ont pas été retirés. Si le proxy était contourné — un accès direct au conteneur applicatif depuis le réseau interne —, l'API refuserait toujours. Une seconde barrière ne dispense pas de la première ; elle la rend seulement plus rarement sollicitée.

C'est aussi ce qui a décidé de sa taille. Le service tient en 2 800 lignes de Rust au 4 août 2026, dont l'essentiel est la liste des routes et la politique d'accès — deux fichiers qui se relisent d'un bout à l'autre. Un composant de sécurité qu'on ne peut pas lire en entier n'en est pas vraiment un.

Un site pour votre métier ?

Parlons de
votre vitrine.

Avant de parler d'un site, parlons du vôtre : donnez-nous son adresse, et vous recevez cinq constats écrits sous 48 h ouvrées. C'est gratuit, et sans suite obligée — vous en faites ce que vous voulez, y compris rien.

salbat.fr l'atelier à découvert
Mon diagnostic gratuit