FixVibe
Covered by FixVibemedium

Next.js Configurazione errata dell'intestazione di sicurezza in next.config.js

Le applicazioni Next.js che utilizzano next.config.js per la gestione delle intestazioni sono soggette a lacune di sicurezza se i modelli di corrispondenza del percorso sono imprecisi. Questa ricerca esplora il modo in cui le configurazioni errate di caratteri jolly e regex portano alla mancanza di intestazioni di sicurezza su percorsi sensibili e come rafforzare la configurazione.

CWE-1021CWE-200

Impatto

Le intestazioni di sicurezza mancanti possono essere sfruttate per eseguire clickjacking, scripting cross-site (XSS) o raccogliere informazioni sull'ambiente del server [S2]. Quando intestazioni come Content-Security-Policy (CSP) o X-Frame-Options vengono applicate in modo incoerente tra i percorsi, gli aggressori possono prendere di mira specifici percorsi non protetti per aggirare i controlli di sicurezza a livello di sito [S2].

Causa principale

Next.js consente agli sviluppatori di configurare le intestazioni di risposta in next.config.js utilizzando la proprietà headers [S2]. Questa configurazione utilizza la corrispondenza del percorso che supporta i caratteri jolly e le espressioni regolari [S2]. Le vulnerabilità della sicurezza derivano tipicamente da:

  • Copertura del percorso incompleta: i modelli di caratteri jolly (ad esempio, /path*) potrebbero non coprire tutti i sottopercorsi previsti, lasciando le pagine nidificate senza intestazioni di sicurezza [S2].
  • Divulgazione di informazioni: per impostazione predefinita, Next.js può includere l'intestazione X-Powered-By, che rivela la versione del framework a meno che non sia esplicitamente disabilitato tramite la configurazione poweredByHeader [S2].
  • Errore di configurazione CORS: le intestazioni Access-Control-Allow-Origin definite in modo errato all'interno dell'array headers possono consentire l'accesso multiorigine non autorizzato ai dati sensibili [S2].

Correzioni concrete

  • Modelli di percorso di controllo: assicurarsi che tutti i modelli source in next.config.js utilizzino i caratteri jolly appropriati (ad esempio, /:path*) per applicare le intestazioni a livello globale dove necessario [S2].
  • Disabilita impronta digitale: imposta poweredByHeader: false in next.config.js per impedire che l'intestazione X-Powered-By venga inviata [S2].
  • Limita CORS: imposta Access-Control-Allow-Origin su domini attendibili specifici anziché su caratteri jolly nella configurazione headers [S2].

Come lo esegue il test FixVibe

FixVibe potrebbe eseguire un'indagine controllata attiva eseguendo la scansione dell'applicazione e confrontando le intestazioni di sicurezza di vari percorsi. Analizzando l'intestazione X-Powered-By e la coerenza di Content-Security-Policy su diverse profondità di percorso, FixVibe può identificare le lacune di configurazione in next.config.js.