FixVibe
Covered by FixVibemedium

Next.js Nesprávná konfigurace záhlaví zabezpečení v next.config.js

Aplikace Next.js používající next.config.js pro správu hlaviček jsou náchylné k bezpečnostním mezerám, pokud jsou vzory porovnávání cest nepřesné. Tento výzkum zkoumá, jak nesprávné konfigurace zástupných znaků a regulárních výrazů vedou k chybějícím hlavičkám zabezpečení na citlivých cestách a jak zpřísnit konfiguraci.

CWE-1021CWE-200

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 konfigurace poweredByHeader [S2].
  • Chybná konfigurace CORS: Nesprávně definované hlavičky Access-Control-Allow-Origin v poli headers mohou 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 source v next.config.js použí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: false v next.config.js, abyste zabránili odeslání záhlaví X-Powered-By [S2].
  • Omezit CORS: Nastavte Access-Control-Allow-Origin na konkrétní důvěryhodné domény, nikoli na zástupné znaky v konfiguraci headers [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.