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 konfigurasipoweredByHeader[S2]. - Kesalahan Konfigurasi CORS: Header
Access-Control-Allow-Originyang tidak didefinisikan dengan benar dalam susunanheadersdapat memungkinkan akses lintas asal yang tidak sah ke data sensitif [S2].
Perbaikan Beton
- Pola Jalur Audit: Pastikan semua pola
sourcedinext.config.jsmenggunakan wildcard yang sesuai (misalnya,/:path*) untuk menerapkan header secara global jika diperlukan [S2]. - Nonaktifkan Sidik Jari: Atur
poweredByHeader: falsedinext.config.jsuntuk mencegah headerX-Powered-Bydikirim [S2]. - Batasi CORS: Setel
Access-Control-Allow-Originke domain tepercaya tertentu, bukan wildcard dalam konfigurasiheaders[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.
