FixVibe
Covered by FixVibemedium

Next.js Няправільная канфігурацыя загалоўка бяспекі ў next.config.js

Праграмы Next.js, якія выкарыстоўваюць next.config.js для кіравання загалоўкамі, успрымальныя да прабелаў у бяспецы, калі шаблоны супастаўлення шляху недакладныя. Гэта даследаванне даследуе, як няправільныя канфігурацыі знакаў падстаноўкі і рэгулярных выразаў прыводзяць да адсутнасці загалоўкаў бяспекі на канфідэнцыйных маршрутах і як узмацніць канфігурацыю.

CWE-1021CWE-200

Уплыў

Адсутныя загалоўкі бяспекі могуць быць выкарыстаны для выканання клікаў, міжсайтавых сцэнарыяў (XSS) або збору інфармацыі аб серверным асяроддзі [S2]. Калі загалоўкі, такія як Content-Security-Policy (CSP) або X-Frame-Options, непаслядоўна прымяняюцца на розных маршрутах, зламыснікі могуць нацэліцца на пэўныя неабароненыя шляхі, каб абыйсці кантроль бяспекі на ўсім сайце [S2].

Першапрычына

Next.js дазваляе распрацоўшчыкам наладжваць загалоўкі адказаў у next.config.js з дапамогай уласцівасці headers [S2]. У гэтай канфігурацыі выкарыстоўваецца супастаўленне шляху, якое падтрымлівае падстаноўныя знакі і рэгулярныя выразы [S2]. Уразлівасці бяспекі звычайна ўзнікаюць з-за:

  • Няпоўнае пакрыццё шляху: Шаблоны падстаноўных знакаў (напрыклад, /path*) могуць не ахопліваць усе прызначаныя падмаршруты, пакідаючы ўкладзеныя старонкі без загалоўкаў бяспекі [S2].
  • Раскрыццё інфармацыі: па змаўчанні Next.js можа ўключаць у сябе загаловак X-Powered-By, які раскрывае версію фрэймворка, калі ён відавочна не адключаны праз канфігурацыю poweredByHeader [S2].
  • Няправільная канфігурацыя CORS: Няправільна вызначаныя загалоўкі Access-Control-Allow-Origin у масіве headers могуць дазволіць несанкцыянаваны доступ з розных крыніц да канфідэнцыяльных даных [S2].

Канкрэтныя выпраўленні

  • Шаблоны шляху аўдыту: пераканайцеся, што ўсе шаблоны source у next.config.js выкарыстоўваюць адпаведныя падстаноўныя знакі (напрыклад, /:path*) для глабальнага прымянення загалоўкаў, дзе неабходна [S2].
  • Адключыць адбіткі пальцаў: усталюйце poweredByHeader: false у next.config.js, каб прадухіліць адпраўку загалоўка X-Powered-By [S2].
  • Абмежаваць CORS: Усталюйце Access-Control-Allow-Origin для пэўных давераных даменаў, а не падстаноўных знакаў у канфігурацыі headers [S2].

Як FixVibe правярае гэта

FixVibe можа выканаць актыўнае закрытае зандаванне шляхам сканавання прыкладання і параўнання загалоўкаў бяспекі розных маршрутаў. Аналізуючы загаловак X-Powered-By і ўзгодненасць Content-Security-Policy на розных глыбінях шляху, FixVibe можа вызначыць прабелы ў канфігурацыі ў next.config.js.