Utjecaj
Sigurnosna zaglavlja koja nedostaju mogu se iskoristiti za izvođenje clickjackinga, skriptiranje na više stranica (XSS) ili prikupljanje informacija o okruženju poslužitelja [S2]. Kada se zaglavlja kao što su Content-Security-Policy (CSP) ili X-Frame-Options nedosljedno primjenjuju na rutama, napadači mogu ciljati određene nezaštićene staze kako bi zaobišli sigurnosne kontrole [S2] na cijelom web-mjestu.
Glavni uzrok
Next.js omogućuje programerima da konfiguriraju zaglavlja odgovora u next.config.js koristeći headers svojstvo [S2]. Ova konfiguracija koristi podudaranje staze koja podržava zamjenske znakove i regularne izraze [S2]. Sigurnosne ranjivosti obično proizlaze iz:
- Nepotpuna pokrivenost puta: Uzorci zamjenskih znakova (npr.,
/path*) možda neće pokriti sve predviđene podrute, ostavljajući ugniježđene stranice bez sigurnosnih zaglavlja [S2]. - Otkrivanje informacija: Prema zadanim postavkama, Next.js može uključivati zaglavlje
X-Powered-By, koje otkriva verziju okvira osim ako nije izričito onemogućeno putempoweredByHeaderkonfiguracije [S2]. - Pogrešna konfiguracija CORS: Nepravilno definirana zaglavlja
Access-Control-Allow-Originunutar nizaheadersmogu dopustiti neovlašteni pristup iz drugog izvora osjetljivim podacima [S2].
Konkretni popravci
- Audit Path Patterns: Osigurajte da svi
sourceuzorci unext.config.jskoriste odgovarajuće zamjenske znakove (npr./:path*) za globalnu primjenu zaglavlja [S2]. - Onemogući otisak prsta: Postavite
poweredByHeader: falseunext.config.jskako biste spriječili slanjeX-Powered-Byzaglavlja [S2]. - Ograniči CORS: Postavite
Access-Control-Allow-Originna određene pouzdane domene umjesto zamjenskih znakova uheaderskonfiguraciji [S2].
Kako FixVibe to testira
FixVibe bi mogao izvršiti aktivnu usmjernu sondu pretraživanjem aplikacije i usporedbom sigurnosnih zaglavlja različitih ruta. Analizirajući X-Powered-By zaglavlje i dosljednost Content-Security-Policy na različitim dubinama staze, FixVibe može identificirati nedostatke konfiguracije u next.config.js.
