FixVibe
Covered by FixVibemedium

Next.js Napačna konfiguracija varnostne glave v next.config.js

Aplikacije Next.js, ki uporabljajo next.config.js za upravljanje glave, so dovzetne za varnostne vrzeli, če so vzorci ujemanja poti nenatančni. Ta raziskava raziskuje, kako napačne konfiguracije nadomestnih znakov in regularnih izrazov vodijo do manjkajočih varnostnih glav na občutljivih poteh in kako utrditi konfiguracijo.

CWE-1021CWE-200

Vpliv

Manjkajoče varnostne glave je mogoče izkoristiti za izvajanje vgrajevanja klikov, skriptiranje med spletnimi mesti (XSS) ali zbiranje informacij o strežniškem okolju [S2]. Ko so glave, kot je Content-Security-Policy (CSP) ali X-Frame-Options, nedosledno uporabljene na poteh, lahko napadalci ciljajo na določene nezaščitene poti, da zaobidejo varnostne kontrole [S2] na celotnem spletnem mestu.

Temeljni vzrok

Next.js omogoča razvijalcem, da konfigurirajo glave odgovorov v next.config.js z uporabo lastnosti headers [S2]. Ta konfiguracija uporablja ujemanje poti, ki podpira nadomestne znake in regularne izraze [S2]. Varnostne ranljivosti običajno izhajajo iz:

  • Nepopolna pokritost poti: Vzorci nadomestnih znakov (npr. /path*) morda ne pokrivajo vseh predvidenih podpoti, zaradi česar ostanejo ugnezdene strani brez varnostnih glav [S2].
  • Razkritje informacij: Next.js lahko privzeto vključuje glavo X-Powered-By, ki razkriva različico ogrodja, razen če ni izrecno onemogočena prek konfiguracije poweredByHeader [S2].
  • Napačna konfiguracija CORS: Nepravilno definirane glave Access-Control-Allow-Origin v matriki headers lahko omogočijo nepooblaščen navzkrižni dostop do občutljivih podatkov [S2].

Betonski popravki

  • Vzorci revizijske poti: Zagotovite, da vsi vzorci source v next.config.js uporabljajo ustrezne nadomestne znake (npr. /:path*) za globalno uporabo glav, kjer je to potrebno [S2].
  • Onemogoči prstni odtis: Nastavite poweredByHeader: false v next.config.js, da preprečite pošiljanje glave X-Powered-By [S2].
  • Omeji CORS: Nastavite Access-Control-Allow-Origin na določene zaupanja vredne domene namesto nadomestnih znakov v konfiguraciji headers [S2].

Kako ga FixVibe testira

FixVibe bi lahko izvedel aktivno zaprto sondo tako, da pajka po aplikaciji in primerja varnostne glave različnih poti. Z analizo glave X-Powered-By in doslednosti Content-Security-Policy v različnih globinah poti lahko FixVibe prepozna konfiguracijske vrzeli v next.config.js.