FixVibe
Covered by FixVibemedium

Next.js Suojausotsikon virheellinen määritys tiedostossa next.config.js

Next.js-sovellukset, jotka käyttävät next.config.js-tiedostoa otsikon hallintaan, ovat alttiita tietoturva-aukkoille, jos polunsovitusmallit ovat epätarkkoja. Tämä tutkimus tutkii, kuinka jokerimerkki- ja säännöllisen lausekkeen virheelliset määritykset johtavat puuttuviin suojausotsikoihin arkaluontoisilla reiteillä ja miten määritystä voidaan vahvistaa.

CWE-1021CWE-200

Vaikutus

Puuttuvia suojausotsikoita voidaan hyödyntää napsautusten kaappaamiseen, sivustojen väliseen komentosarjaan (XSS) tai tietojen keräämiseen palvelinympäristöstä [S2]. Kun otsikoita, kuten Content-Security-Policy (CSP) tai X-Frame-Options käytetään epäjohdonmukaisesti eri reiteillä, hyökkääjät voivat kohdistaa tiettyihin suojaamattomiin polkuihin ohittaakseen sivustonlaajuiset suojaustoiminnot ZXCVFIXZVIBETCV.

Perussyy

Next.js antaa kehittäjille mahdollisuuden määrittää vastausotsikot tiedostoon next.config.js käyttämällä headers-ominaisuutta [S2]. Tämä kokoonpano käyttää polkuhakua, joka tukee yleismerkkejä ja säännöllisiä lausekkeita [S2]. Suojausheikkoudet johtuvat yleensä seuraavista syistä:

  • Epätäydellinen polun kattavuus: Jokerimerkkikuviot (esim. /path*) eivät välttämättä kata kaikkia suunniteltuja alireitittimiä, jolloin sisäkkäiset sivut jää ilman suojausotsikoita [S2].
  • Tiedon paljastaminen: Oletuksena Next.js voi sisältää X-Powered-By-otsikon, joka paljastaa kehysversion, ellei sitä ole erikseen poistettu käytöstä poweredByHeader-määrityksen ZXCVFIXZVICVOKEN2 kautta.
  • CORS Virheellinen määritys: Väärin määritellyt Access-Control-Allow-Origin-otsikot headers-taulukossa voivat sallia luvattoman pääsyn arkaluonteisiin tietoihin ZXCVFIXZVIBETOKEN2.

Betonikorjauksia

  • Tarkastuspolkumallit: Varmista, että kaikissa source-kuvioissa next.config.js käyttää asianmukaisia yleismerkkejä (esim. /:path*) käyttääksesi otsikoita maailmanlaajuisesti tarvittaessa.
  • Poista sormenjälki käytöstä: Aseta poweredByHeader: false kohtaan next.config.js, jotta X-Powered-By-otsikkoa ei lähetetä [S2].
  • Rajoita CORS: Aseta Access-Control-Allow-Origin tiettyihin luotettuihin verkkotunnuksiin yleismerkkien sijaan headers-määrityksessä [S2].

Kuinka FixVibe testaa sitä

FixVibe voisi suorittaa aktiivisen portitetun luotauksen indeksoimalla sovelluksen ja vertaamalla eri reittien suojausotsikoita. Analysoimalla X-Powered-By-otsikon ja Content-Security-Policy:n johdonmukaisuuden eri polun syvyyksillä FixVibe voi tunnistaa next.config.js:n konfiguraatioaukot.