Влияние
Отсутствующие заголовки безопасности могут быть использованы для выполнения кликджекинга, межсайтового выполнения сценариев (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.
