FixVibe
Covered by FixVibemedium

Next.js Salah konfigurasi Pengepala Keselamatan dalam next.config.js

Aplikasi Next.js yang menggunakan next.config.js untuk pengurusan pengepala terdedah kepada jurang keselamatan jika corak padanan laluan tidak tepat. Penyelidikan ini meneroka cara salah konfigurasi kad bebas dan regex membawa kepada kehilangan pengepala keselamatan pada laluan sensitif dan cara mengeraskan konfigurasi.

CWE-1021CWE-200

Kesan

Pengepala keselamatan yang hilang boleh dieksploitasi untuk melakukan clickjacking, skrip merentas tapak (XSS) atau mengumpulkan maklumat tentang persekitaran pelayan [S2]. Apabila pengepala seperti Content-Security-Policy (CSP) atau X-Frame-Options digunakan secara tidak konsisten merentas laluan, penyerang boleh menyasarkan laluan tidak dilindungi khusus untuk memintas kawalan keselamatan seluruh tapak ZXCVFIXZVIBECTOKEN3.

Punca Punca

Next.js membenarkan pembangun mengkonfigurasi pengepala respons dalam next.config.js menggunakan sifat headers [S2]. Konfigurasi ini menggunakan padanan laluan yang menyokong kad bebas dan ungkapan biasa [S2]. Kerentanan keselamatan biasanya timbul daripada:

  • Liputan Laluan Tidak Lengkap: Corak kad liar (cth., /path*) mungkin tidak meliputi semua sublaluan yang dimaksudkan, meninggalkan halaman bersarang tanpa pengepala keselamatan [S2].
  • Pendedahan Maklumat: Secara lalai, Next.js mungkin termasuk pengepala X-Powered-By, yang mendedahkan versi rangka kerja melainkan dilumpuhkan secara eksplisit melalui konfigurasi poweredByHeader ZXCVIFIXZVIBECTOK.
  • CORS Salah konfigurasi: Pengepala Access-Control-Allow-Origin yang tidak ditakrifkan dengan betul dalam tatasusunan headers boleh membenarkan akses silang asal yang tidak dibenarkan kepada data sensitif ZXCVFIXXVIBETOKEN2.

Pembetulan Konkrit

  • Corak Laluan Audit: Pastikan semua corak source dalam next.config.js menggunakan kad bebas yang sesuai (cth., /:path*) untuk menggunakan pengepala secara global jika perlu ZXCVFIXVICETOKEN3ZXCV.
  • Lumpuhkan Cap Jari: Tetapkan poweredByHeader: false dalam next.config.js untuk menghalang pengepala X-Powered-By daripada dihantar [S2].
  • Hadkan CORS: Tetapkan Access-Control-Allow-Origin kepada domain dipercayai tertentu dan bukannya kad bebas dalam konfigurasi headers [S2].

Bagaimana FixVibe mengujinya

FixVibe boleh melakukan siasatan berpagar aktif dengan merangkak aplikasi dan membandingkan pengepala keselamatan pelbagai laluan. Dengan menganalisis pengepala X-Powered-By dan ketekalan Content-Security-Policy merentas kedalaman laluan yang berbeza, FixVibe boleh mengenal pasti jurang konfigurasi dalam next.config.js.