Indvirkning
Manglende sikkerhedsheadere kan udnyttes til at udføre clickjacking, cross-site scripting (XSS) eller indsamle oplysninger om servermiljøet [S2]. Når headere såsom Content-Security-Policy (CSP) eller X-Frame-Options anvendes inkonsekvent på tværs af ruter, kan angribere målrette mod specifikke ubeskyttede stier for at omgå sikkerhedskontrollen [S2] på hele webstedet.
Grundårsag
Next.js giver udviklere mulighed for at konfigurere svaroverskrifter i next.config.js ved hjælp af headers-egenskaben [S2]. Denne konfiguration bruger stimatching, der understøtter jokertegn og regulære udtryk [S2]. Sikkerhedssårbarheder opstår typisk fra:
- Ufuldstændig stidækning: Jokertegnmønstre (f.eks.
/path*) dækker muligvis ikke alle tilsigtede underruter, hvilket efterlader indlejrede sider uden sikkerhedsoverskrifter [S2]. - Oplysninger: Som standard kan Next.js inkludere
X-Powered-By-headeren, som afslører rammeversionen, medmindre den eksplicit er deaktiveret viapoweredByHeader-konfigurationen [S2]. - CORS Fejlkonfiguration: Ukorrekt definerede
Access-Control-Allow-Origin-headere iheaders-arrayet kan tillade uautoriseret adgang på tværs af oprindelse til følsomme data [S2].
Konkrete rettelser
- Revisionsstimønstre: Sørg for, at alle
source-mønstre inext.config.jsbruger passende jokertegn (f.eks./:path*) til at anvende overskrifter globalt, hvor det er nødvendigt [S2]. - Deaktiver fingeraftryk: Indstil
poweredByHeader: falseinext.config.jsfor at forhindreX-Powered-By-headeren i at blive sendt [S2]. - Begræns CORS: Indstil
Access-Control-Allow-Origintil specifikke betroede domæner i stedet for jokertegn iheaders-konfigurationen [S2].
Hvordan FixVibe tester for det
FixVibe kunne udføre en aktiv gated probe ved at crawle applikationen og sammenligne sikkerhedsheaderne på forskellige ruter. Ved at analysere X-Powered-By-headeren og konsistensen af Content-Security-Policy på tværs af forskellige vejdybder, kan FixVibe identificere konfigurationshuller i next.config.js.
