Dopad
Chybějící hlavičky zabezpečení lze zneužít k provádění clickjackingu, skriptování mezi stránkami (XSS) nebo ke shromažďování informací o prostředí serveru [S2]. Když jsou hlavičky, jako je Content-Security-Policy (CSP) nebo X-Frame-Options nekonzistentně aplikovány napříč cestami, útočníci se mohou zaměřit na konkrétní nechráněné cesty, aby obešli bezpečnostní kontroly na celém webu ZXCVFIXXVIBETOKEN3ZCVFIXVIBETOKEN1ZXCV.
Hlavní příčina
Next.js umožňuje vývojářům konfigurovat hlavičky odpovědí v next.config.js pomocí vlastnosti headers [S2]. Tato konfigurace používá shodu cest, která podporuje zástupné znaky a regulární výrazy [S2]. Chyby zabezpečení obvykle vznikají z:
- Neúplné pokrytí cesty: Vzory zástupných znaků (např.
/path*) nemusí pokrývat všechny zamýšlené podtrasy, takže vnořené stránky zůstanou bez záhlaví zabezpečení [S2]. - Zveřejnění informací: Ve výchozím nastavení může Next.js obsahovat záhlaví
X-Powered-By, které odhaluje verzi rámce, pokud není výslovně zakázáno prostřednictvím konfiguracepoweredByHeader[S2]. - Chybná konfigurace CORS: Nesprávně definované hlavičky
Access-Control-Allow-Originv poliheadersmohou umožnit neoprávněný křížový přístup k citlivým datům ZXCVFIXVIBETOKEN2ZXC.
Opravy betonu
- Vzory auditní cesty: Zajistěte, aby všechny vzory
sourcevnext.config.jspoužívaly vhodné zástupné znaky (např./:path*), aby bylo možné v případě potřeby použít záhlaví globálně ZXCVFIXXVIBETOKEN3. - Zakázat otisky prstů: Nastavte
poweredByHeader: falsevnext.config.js, abyste zabránili odeslání záhlavíX-Powered-By[S2]. - Omezit CORS: Nastavte
Access-Control-Allow-Originna konkrétní důvěryhodné domény, nikoli na zástupné znaky v konfiguraciheaders[S2].
Jak to testuje FixVibe
FixVibe by mohl provádět aktivní hradlovou sondu procházením aplikace a porovnáváním bezpečnostních hlaviček různých tras. Analýzou záhlaví X-Powered-By a konzistence Content-Security-Policy napříč různými hloubkami cesty může FixVibe identifikovat mezery v konfiguraci v next.config.js.
