Virkning
Manglende sikkerhetshoder kan utnyttes til å utføre clickjacking, skripting på tvers av nettsteder (XSS), eller samle informasjon om servermiljøet [S2]. Når overskrifter som Content-Security-Policy (CSP) eller X-Frame-Options brukes inkonsekvent på tvers av ruter, kan angripere målrette mot spesifikke ubeskyttede stier for å omgå sikkerhetskontroller for hele nettstedet [S2].
Grunnårsak
Next.js lar utviklere konfigurere svarhoder i next.config.js ved å bruke headers-egenskapen [S2]. Denne konfigurasjonen bruker banetilpasning som støtter jokertegn og regulære uttrykk [S2]. Sikkerhetssårbarheter oppstår vanligvis fra:
- Ufullstendig banedekning: Jokertegnmønstre (f.eks.
/path*) dekker kanskje ikke alle tiltenkte underruter, og etterlater nestede sider uten sikkerhetsoverskrifter [S2]. - Informasjonsavsløring: Som standard kan Next.js inkludere
X-Powered-By-overskriften, som avslører rammeversjonen med mindre de er eksplisitt deaktivert viapoweredByHeader-konfigurasjonen [S2]. - CORS Feilkonfigurasjon: Feilaktig definerte
Access-Control-Allow-Origin-hoder iheaders-arrayen kan tillate uautorisert kryssopprinnelsestilgang til sensitive data [S2].
Betongrettinger
- Revisjonsbanemønstre: Sørg for at alle
source-mønstre inext.config.jsbruker passende jokertegn (f.eks./:path*) for å bruke overskrifter globalt der det er nødvendig [S2]. - Deaktiver fingeravtrykk: Sett
poweredByHeader: falseinext.config.jsfor å forhindre atX-Powered-By-overskriften sendes [S2]. - Begrens CORS: Sett
Access-Control-Allow-Origintil spesifikke klarerte domener i stedet for jokertegn iheaders-konfigurasjonen [S2].
Hvordan FixVibe tester for det
FixVibe kunne utføre en aktiv gated probe ved å gjennomsøke applikasjonen og sammenligne sikkerhetshodene til forskjellige ruter. Ved å analysere X-Powered-By-overskriften og konsistensen til Content-Security-Policy på tvers av forskjellige banedybder, kan FixVibe identifisere konfigurasjonshull i next.config.js.
