FixVibe
Covered by FixVibemedium

Next.js Fejlkonfiguration af sikkerhedsheader i next.config.js

Next.js-applikationer, der bruger next.config.js til header-styring, er modtagelige for sikkerhedshuller, hvis sti-matchende mønstre er upræcise. Denne forskning undersøger, hvordan jokertegn og regex-fejlkonfigurationer fører til manglende sikkerhedsheadere på følsomme ruter, og hvordan man hærder konfigurationen.

CWE-1021CWE-200

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 via poweredByHeader-konfigurationen [S2].
  • CORS Fejlkonfiguration: Ukorrekt definerede Access-Control-Allow-Origin-headere i headers-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 i next.config.js bruger passende jokertegn (f.eks. /:path*) til at anvende overskrifter globalt, hvor det er nødvendigt [S2].
  • Deaktiver fingeraftryk: Indstil poweredByHeader: false i next.config.js for at forhindre X-Powered-By-headeren i at blive sendt [S2].
  • Begræns CORS: Indstil Access-Control-Allow-Origin til specifikke betroede domæner i stedet for jokertegn i headers-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.