FixVibe
Covered by FixVibemedium

Next.js Configurare greșită a antetului de securitate în next.config.js

Aplicațiile Next.js care utilizează next.config.js pentru gestionarea antetului sunt susceptibile la lacune de securitate dacă modelele de potrivire a căilor sunt imprecise. Această cercetare explorează modul în care configurările greșite cu caractere wildcard și regex duc la lipsa antetelor de securitate pe rute sensibile și cum să întărească configurația.

CWE-1021CWE-200

Impact

Anteturile de securitate lipsă pot fi exploatate pentru a efectua clickjacking, cross-site scripting (XSS) sau pentru a aduna informații despre mediul server [S2]. Când anteturile precum Content-Security-Policy (CSP) sau X-Frame-Options sunt aplicate inconsecvent pe rute, atacatorii pot viza anumite căi neprotejate pentru a ocoli controalele de securitate la nivel de site ZXCVFIXVIBETOKEN3.

Cauza fundamentală

Next.js permite dezvoltatorilor să configureze anteturi de răspuns în next.config.js utilizând proprietatea headers [S2]. Această configurație folosește potrivirea căilor care acceptă metacaractere și expresii regulate [S2]. Vulnerabilitățile de securitate apar de obicei din:

  • Acoperire incompletă a căii: modelele wildcard (de exemplu, /path*) ar putea să nu acopere toate subrutele dorite, lăsând paginile imbricate fără anteturi de securitate [S2].
  • Dezvăluirea informațiilor: în mod implicit, Next.js poate include antetul X-Powered-By, care dezvăluie versiunea cadrului, dacă nu este dezactivată în mod explicit prin configurația poweredByHeader [S2].
  • CORS Configurare greșită: anteturile Access-Control-Allow-Origin definite necorespunzător în cadrul matricei headers pot permite accesul neautorizat de origine încrucișată la datele sensibile headers.

Remedieri concrete

  • Modele de căi de auditare: asigurați-vă că toate modelele source din next.config.js utilizează caractere metalice adecvate (de exemplu, /:path*) pentru a aplica anteturi la nivel global, acolo unde este necesar [S2].
  • Dezactivați amprenta digitală: setați poweredByHeader: false în next.config.js pentru a preveni trimiterea antetului X-Powered-By la [S2].
  • Restricționați CORS: setați Access-Control-Allow-Origin la anumite domenii de încredere, mai degrabă decât la caractere metalice în configurația headers [S2].

Cum testează FixVibe pentru aceasta

FixVibe ar putea efectua o sondă activă prin accesarea cu crawlere a aplicației și comparând anteturile de securitate ale diferitelor rute. Analizând antetul X-Powered-By și consistența lui Content-Security-Policy pe diferite adâncimi de traseu, FixVibe poate identifica lacunele de configurare în next.config.js.