From 677f64d18ed1709ffc12907a9b439cfce9e26a78 Mon Sep 17 00:00:00 2001 From: Blomios Date: Thu, 16 Jul 2026 18:51:11 +0200 Subject: [PATCH] docs(server): restaurer l'obligation de proxy TLS, que validate() n'assure pas (#65) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La réécriture précédente avait remplacé « Do not expose the backend on a public non-loopback address without TLS proxying » par une formulation adossée à `ServerConfig::validate()`. Littéralement vraie, mais pas équivalente : elle troque une OBLIGATION faite à l'opérateur contre une garantie automatique qui n'existe pas. `validate()` valide une configuration, pas la réalité. Rien ne vérifie qu'un proxy est réellement devant le serveur : passer les trois drapeaux en bindant `0.0.0.0` sans aucun proxy satisfait `validate()` et sert du HTTP en clair. La phrase normative est donc rétablie, avec cette limite dite explicitement. Voir #72 : `--trust-reverse-proxy` n'a par ailleurs aucun effet à l'exécution. Co-Authored-By: Claude Opus 4.8 --- docs/server-client-mode-remote.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/server-client-mode-remote.md b/docs/server-client-mode-remote.md index e9cae99..f40bf6c 100644 --- a/docs/server-client-mode-remote.md +++ b/docs/server-client-mode-remote.md @@ -68,6 +68,9 @@ only the public access is HTTPS. For any non-loopback bind, keep the full remote HTTPS configuration: `--allow-remote`, `--public-origin https://...`, and `--trust-reverse-proxy`. `ServerConfig::validate()` rejects a non-loopback bind without it. +That check covers the configuration, not reality: it cannot verify that a proxy +is actually terminating HTTPS in front of the server. Do not expose the backend +on a public non-loopback address without TLS proxying. The proxy must forward the same origin for the SPA, `/api/*`, and `/api/ws`. `--public-origin` is matched by strict equality against the request `Origin`: