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 неконзистентно се применуваат низ маршрутите, напаѓачите можат да таргетираат одредени незаштитени патеки за да ги заобиколат безбедносните контроли на целата локација ZXETOKV3C

Основна причина

Next.js им овозможува на програмерите да ги конфигурираат заглавјата на одговорот во next.config.js користејќи го својството headers [S2]. Оваа конфигурација користи совпаѓање на патеката што поддржува џокери и правилни изрази [S2]. Безбедносните пропусти обично произлегуваат од:

  • Нецелосно покривање на патеката: шаблоните со знаци (на пр., /path*) може да не ги покриваат сите наменети потпрени, оставајќи ги вгнездените страници без безбедносни заглавија [S2].
  • Обелоденување информации: Стандардно, Next.js може да го вклучи заглавието X-Powered-By, кое ја открива верзијата на рамката, освен ако не е експлицитно оневозможено преку конфигурацијата poweredByHeader, ZXCVECV2F.
  • CORS Погрешна конфигурација: Неправилно дефинираните заглавија Access-Control-Allow-Origin во низата headers може да дозволат неовластен пристап со вкрстено потекло до чувствителни податоци ZXCVEN2FIXXVET.

Бетонски поправки

  • Шаблони за ревизорски патеки: уверете се дека сите шаблони source во next.config.js користат соодветни знаци (на пр., /:path*) за да се применат заглавија глобално каде што е потребно next.config.js.
  • Оневозможи отпечаток од прст: Поставете 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.