FixVibe
Covered by FixVibemedium

Next.js Kesalahan Konfigurasi Header Keamanan di next.config.js

Aplikasi Next.js yang menggunakan next.config.js untuk manajemen header rentan terhadap celah keamanan jika pola pencocokan jalur tidak tepat. Penelitian ini mengeksplorasi bagaimana kesalahan konfigurasi wildcard dan regex menyebabkan hilangnya header keamanan pada rute sensitif dan cara memperkeras konfigurasi.

CWE-1021CWE-200

Dampak

Header keamanan yang hilang dapat dimanfaatkan untuk melakukan clickjacking, pembuatan skrip lintas situs (XSS), atau mengumpulkan informasi tentang lingkungan server [S2]. Ketika header seperti Content-Security-Policy (CSP) atau X-Frame-Options diterapkan secara tidak konsisten di seluruh rute, penyerang dapat menargetkan jalur tertentu yang tidak dilindungi untuk melewati kontrol keamanan seluruh situs [S2].

Akar Penyebab

Next.js memungkinkan pengembang untuk mengonfigurasi header respons di next.config.js menggunakan properti headers [S2]. Konfigurasi ini menggunakan pencocokan jalur yang mendukung wildcard dan ekspresi reguler [S2]. Kerentanan keamanan biasanya muncul dari:

  • Cakupan Jalur Tidak Lengkap: Pola karakter pengganti (mis., /path*) mungkin tidak mencakup semua subrute yang dituju, meninggalkan laman bertumpuk tanpa header keamanan [S2].
  • Pengungkapan Informasi: Secara default, Next.js dapat menyertakan header X-Powered-By, yang menampilkan versi kerangka kerja kecuali dinonaktifkan secara eksplisit melalui konfigurasi poweredByHeader [S2].
  • Kesalahan Konfigurasi CORS: Header Access-Control-Allow-Origin yang tidak didefinisikan dengan benar dalam susunan headers dapat memungkinkan akses lintas asal yang tidak sah ke data sensitif [S2].

Perbaikan Beton

  • Pola Jalur Audit: Pastikan semua pola source di next.config.js menggunakan wildcard yang sesuai (misalnya, /:path*) untuk menerapkan header secara global jika diperlukan [S2].
  • Nonaktifkan Sidik Jari: Atur poweredByHeader: false di next.config.js untuk mencegah header X-Powered-By dikirim [S2].
  • Batasi CORS: Setel Access-Control-Allow-Origin ke domain tepercaya tertentu, bukan wildcard dalam konfigurasi headers [S2].

Bagaimana FixVibe mengujinya

FixVibe dapat melakukan pemeriksaan gerbang aktif dengan merayapi aplikasi dan membandingkan header keamanan dari berbagai rute. Dengan menganalisis header X-Powered-By dan konsistensi Content-Security-Policy di berbagai kedalaman jalur, FixVibe dapat mengidentifikasi kesenjangan konfigurasi di next.config.js.