DokuKonventionen und Konzepte
Sicherheit
Wie Nexy die eigene Angriffsfläche klein hält, welche Versionen es benötigt und wie man ein Projekt überprüft.
Versionsböden
Nexy hängt von FastAPI, Starlette, Jinja2, Vite und React ab. Ein Boden ist die niedrigste Version, die Nexy zulässt; Jeder beantwortet einen veröffentlichten Ratgeber.
| Paket | Boden | Warum |
|---|---|---|
starlette |
1.0.1 | CVE-2026-48710 (BadHost): Ein manipulierter Host-Header ändert den Pfad, den Starlette an die Middleware meldet, wodurch die auf request.url.path geschriebene Autorisierung umgangen wird. Von CISA als ausgenutzt aufgeführt. |
fastapi |
0,133,0 | die erste Version, die ein festes Starlette akzeptiert |
jinja2 |
3.1.6 | Sandbox-Flucht durch den attr-Filter (CVE-2025-27516) |
vite (Gerüstprojekte) |
6.4.3 | server.fs.deny Umgehung auf alternativen Windows-Pfaden (CVE-2026-53571); Die frühere Umgehung der Abfragezeichenfolge (CVE-2026-39364) betrifft nur Vite 7.1-7.3.1 und 8.0.0-8.0.4 |
react, react-dom |
19.2.5 | die 2026 React-Advisories betreffen die react-server-dom-*-Pakete, die Nexy nicht verwendet; Der Boden hält die Linie geflickt |
Überprüfen Sie Ihre gelösten Versionen:
uv pip list | grep -i -E "starlette|fastapi|jinja2"npm ls vite
Regeln, denen Nexy folgt
- Vertrauen Sie niemals dem Host-Header für Pfade. Nexy liest
scope["path"], nichtrequest.url.path, in seiner eigenen Middleware (Verzeichnis-Middleware). Machen Sie dasselbe bei Ihnen. - Escape, was HTML erreicht. An Client-Komponenten übergebene Requisiten,
Link-Attribute,Image-,Audio- undVideo-Attribute, Inhaltsverzeichnis-Anker undHTTPException-Details werden alle HTML-escaped. Eine.nexy-Vorlage entkommt nicht von selbst: Schreiben Sie{{ value | e }}für jeden Wert, der von einem Besucher oder der Datenbank stammt, und niemals| safefür Benutzereingaben. - Entwicklerendpunkte sind nur Loopback und eng. Der Dev-Renderendpunkt (
/__nexy__/render) akzeptiert nur Dateien untersrc/routes/mit der Erweiterung.tsxoder.jsxund ist nur über den Dev-Server erreichbar, der fremdeHost-Header ablehnt. - Fehlerdetails gehen nicht verloren. Eine Fehlerseite, die selbst fehlschlägt, zeigt nur den Statuscode an.
- Produktionsantworten tragen sichere Header.
X-Content-Type-Options: nosniffundReferrer-Policy: strict-origin-when-cross-origin, es sei denn, Ihr Code legt eigene fest. DerServer-Header wird nicht gesendet. Fügen SieStrict-Transport-Securityund einContent-Security-Policyin Ihrem Proxy oder einer Middleware hinzu: Sie hängen von Ihrer Domain ab. - Ein Absturz zeigt eine Referenz, nicht den Fehler. Siehe Fehlerseiten.
- Kein
evalund keinshell=Trueim Python-Code von Nexy. Externe Programme werden mit einer Argumentliste ausgeführt.
Durchführung der Audits
python scripts/audit_dependencies.py # Python dependencies against the locknpm audit # in a scaffolded projectuv run bandit -r nexy -c .bandit # static analysis of Nexy itself
Nexys eigenes Repository führt bei seinen Prüfungen den ersten und den dritten aus. Eine neue Beratung auf einer Etage darüber erfolgt durch Anheben des Bodens in pyproject.toml oder im Gerüst package.json und anschließendes Regenerieren der Sperre.
Sichere Bereitstellung
- Legen Sie
useTrustedHostfür Ihre Domains fest: UnerwarteteHost-Header werden vor jeder Route abgelehnt. - Machen Sie den Vite-Entwicklungsserver nicht verfügbar:
nx devhält ihn im Loopback hinter dem Nexy-Ursprung. - Legen Sie
useDocs = Falsefest, wenn das API-Schema nicht öffentlich sein soll.
Siehe Middleware und Sicherheit.
Quellen
- CVE-2026-48710 (BadHost) in Starlette
- Vite Empfehlung GHSA-fx2h-pf6j-xcff und GHSA-v2wj-q39q-566r
- Jinja2 CVE-2025-27516
- React Serverpakete CVE-2026-44907