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-otsikotheaders-taulukossa voivat sallia luvattoman pääsyn arkaluonteisiin tietoihin ZXCVFIXZVIBETOKEN2.
Betonikorjauksia
- Tarkastuspolkumallit: Varmista, että kaikissa
source-kuvioissanext.config.jskäyttää asianmukaisia yleismerkkejä (esim./:path*) käyttääksesi otsikoita maailmanlaajuisesti tarvittaessa. - Poista sormenjälki käytöstä: Aseta
poweredByHeader: falsekohtaannext.config.js, jottaX-Powered-By-otsikkoa ei lähetetä [S2]. - Rajoita CORS: Aseta
Access-Control-Allow-Origintiettyihin luotettuihin verkkotunnuksiin yleismerkkien sijaanheaders-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.
