DokumentasiKonvensi dan konsep
Keamanan
Bagaimana Nexy menjaga permukaan serangannya tetap kecil, versi apa yang diperlukan, dan cara memeriksa proyek.
Lantai versi
Nexy bergantung pada FastAPI, Starlette, Jinja2, Vite dan React. Lantai adalah versi terendah yang diizinkan Nexy; masing-masing menjawab nasihat yang diterbitkan.
| Paket | Lantai | Mengapa |
|---|---|---|
starlette |
1.0.1 | CVE-2026-48710 (BadHost): header Host yang dibuat mengubah jalur Starlette laporan ke middleware, yang melewati otorisasi yang tertulis di request.url.path. Terdaftar sebagai dieksploitasi oleh CISA. |
fastapi |
0.133.0 | rilis pertama yang menerima Starlette tetap |
jinja2 |
3.1.6 | pelarian sandbox melalui filter attr (CVE-2025-27516) |
vite (proyek perancah) |
6.4.3 | server.fs.deny melewati jalur alternatif Windows (CVE-2026-53571); bypass string kueri sebelumnya (CVE-2026-39364) hanya memengaruhi Vite 7.1-7.3.1 dan 8.0.0-8.0.4 |
react, react-dom |
19.2.5 | nasihat tahun 2026 React berkaitan dengan paket react-server-dom-*, yang tidak digunakan Nexy; lantai membuat garis tetap ditambal |
Periksa versi penyelesaian Anda:
uv pip list | grep -i -E "starlette|fastapi|jinja2"npm ls vite
Aturan yang diikuti Nexy
- Jangan pernah mempercayai header Host untuk jalurnya. Nexy membaca
scope["path"], bukanrequest.url.path, di middlewarenya sendiri (direktori middleware). Lakukan hal yang sama pada milik Anda. - Hindari apa yang mencapai HTML. Props diteruskan ke komponen klien, atribut
Link, atributImage,AudiodanVideo, jangkar daftar isi, dan detailHTTPExceptionsemuanya lolos dari HTML. Templat.nexytidak lolos dengan sendirinya: tulis{{ value | e }}untuk nilai apa pun yang berasal dari pengunjung atau database, dan jangan pernah| safepada input pengguna. - Titik akhir pengembang hanya bersifat loopback dan sempit. Titik akhir render dev (
/__nexy__/render) hanya menerima file padasrc/routes/dengan ekstensi.tsxatau.jsx, dan hanya dapat dijangkau melalui server pengembang, yang menolak headerHostasing. - Detail kesalahan tidak bocor. Halaman kesalahan yang gagal hanya menampilkan kode status.
- Jawaban produksi membawa header yang aman.
X-Content-Type-Options: nosniffdanReferrer-Policy: strict-origin-when-cross-origin, kecuali kode Anda menetapkannya sendiri. HeaderServertidak terkirim. TambahkanStrict-Transport-SecuritydanContent-Security-Policydi proxy atau middleware Anda: keduanya bergantung pada domain Anda. - Kecelakaan menunjukkan referensi, bukan kesalahannya. Lihat Halaman kesalahan.
- Tidak ada
evaldan tidak adashell=Truedalam kode Python Nexy. Program eksternal dijalankan dengan daftar argumen.
Menjalankan audit
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
Repositori Nexy sendiri menjalankan yang pertama dan ketiga dalam pemeriksaannya. Penasihat baru di lantai atas ditangani dengan menaikkan lantai di pyproject.toml atau di perancah package.json, lalu membuat ulang kuncinya.
Menyebar dengan aman
- Setel
useTrustedHostke domain Anda: ia menolak headerHostyang tidak diharapkan sebelum rute apa pun. - Jangan mengekspos server pengembang Vite:
nx devsimpan di loopback di belakang asal Nexy. - Setel
useDocs = Falsejika skema API tidak boleh bersifat publik.
Lihat Middleware dan keamanan.
Sumber
- CVE-2026-48710 (BadHost) di Starlette
- Vite penasehat GHSA-fx2h-pf6j-xcff dan GHSA-v2wj-q39q-566r
- Jinja2 CVE-2025-27516
- React paket server CVE-2026-44907