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 configurazionepoweredByHeader[S2]. - Errore di configurazione CORS: le intestazioni
Access-Control-Allow-Origindefinite in modo errato all'interno dell'arrayheaderspossono consentire l'accesso multiorigine non autorizzato ai dati sensibili [S2].
Correzioni concrete
- Modelli di percorso di controllo: assicurarsi che tutti i modelli
sourceinnext.config.jsutilizzino i caratteri jolly appropriati (ad esempio,/:path*) per applicare le intestazioni a livello globale dove necessario [S2]. - Disabilita impronta digitale: imposta
poweredByHeader: falseinnext.config.jsper impedire che l'intestazioneX-Powered-Byvenga inviata [S2]. - Limita CORS: imposta
Access-Control-Allow-Originsu domini attendibili specifici anziché su caratteri jolly nella configurazioneheaders[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.
