Въздействие
Липсващите хедъри за сигурност могат да бъдат използвани за извършване на кликване, междусайтови скриптове (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.
