- Dikirim
- 20 Agustus 2026 pukul 05.20 UTC
- Penulis
- Kamo
- Commit
- 3271922
Menghapus kedua temuan High tersisa pada script-src: 'unsafe- inline' satu dan "host allowlist sering dapat dilewati." Hanya nonce dengan 'strikdynamic' membersihkan mereka, dan Berikutnya tidak dapat memasok satu pada halaman prerendered - sebuah nonce harus unik per respon, jadi Berikutnya memancarkan satu saja sambil merender, dan rute prerendered disajikan dari penuh-rute cache tanpa rendering. Jalan memutar yang didokumentasikan adalah untuk membuat setiap rute dinamis, yang akan membatalkan rendering statis situs ini tergantung pada dan runtuhnya < Link > prefetch ke pohon rute telanjang. Jadi nonce diterapkan dimana byte meninggalkan proses. server- nonce.js dimulai server standalone pada loopback, melayani port publik itu sendiri, dan perangko masing-masing Respon HTML saat keluar. Berikutnya terus mengusut dan terus melayani dari nya cache sendiri; diukur melalui pembungkus, / en / harga masih prefetches 77.521 bytes dengan 23 referensi potongan dan jawaban x-nextjs- cache: HIT. Rendering statik dan benar-benar berputar sekali, keduanya. 'stric-dynamic' adalah apa yang pensiun pencarian allowlist: peramban mengabaikan host allowlist di bawahnya dan script kepercayaan dibuat oleh script yang sudah dipercaya. The widget obrolan dan pelacak analitik disuntikkan oleh next / script di waktu-jalan, jadi mereka dipercaya secara transitif dan perlu tidak ada entri allowlist sama sekali. 'unsafe- inline' dan https: tetap hanya sebagai fallback terdokumentasi untuk browser terlalu tua untuk memahami nonces, yang mengabaikan baik dan mendapatkan apa-apa sebelumnya. Tiga hal ini muncul, tidak ada yang akan terlihat dari config: Meneruskan permintaan CSP upstream adalah jebakan. Berikutnya membaca nonce keluar dari itu dan perangko script sendiri - maka yang render masuk ke singgahan rute penuh - dengan nonce dipanggang di, sehingga setiap pengunjung kemudian mendapat 96 tag membawa mati nonce. Under 'stric-dynamic' a stale nonce does not degrade, it blocks: a halaman kosong sampai entri berakhir. Permintaan CSP dibatalkan, dan atribut pre- ada yang dihapus sebelum stamping. Menulis ulang Host di hulu untuk melihat ke belakang. Berikutnya membangun URL redirect absolut dari Host, jadi '/' menjawab 'Lokasi: http: / / localhost: 41337 / en'. Host diteruskan tidak berubah, dan sebuah redirect menunjuk kita sendiri Loopback runtuh ke jalan sebagai asuransi. Kompresi harus bergerak. Upstream menanyakan identitas sehingga HTML dapat ditulis ulang tanpa dekompresi / recompress round trip, dan pembungkus re- kompres - brotli di mana klien membawanya, yang 30,177 bytes melawan 56,324 gzip yang disajikan sebelumnya. skrip / check-csp-nonce.mjs memegang kontrak akhir untuk mengakhiri setiap build: boots aplikasi dibangun di belakang pembungkus dan menegaskan header membawa sebuah nonce dan 'stric-dynamic', bahwa setiap tag skrip membawa nonce, bahwa mereka semua bahwa respon, dan bahwa itu berputar antara permintaan. It cached- nonce bug pada lari pertama. A tetap nonce akan memuaskan audit saat menjadi dapat dibaca oleh siapa pun, sehingga pemeriksaan rotasi adalah titik daripada formalitas. Permintaan memori 128Mi - > 256Mi: HTML distempel untuk dicap, jadi puncak memori sekarang skala dengan permintaan HTML concurt daripada duduk datar.