FixVibe
Covered by FixVibemedium

Next.js Configuração incorreta do cabeçalho de segurança em next.config.js

Os aplicativos Next.js que usam next.config.js para gerenciamento de cabeçalho são suscetíveis a falhas de segurança se os padrões de correspondência de caminho forem imprecisos. Esta pesquisa explora como as configurações incorretas de curingas e regex levam à falta de cabeçalhos de segurança em rotas confidenciais e como fortalecer a configuração.

CWE-1021CWE-200

Impacto

Cabeçalhos de segurança ausentes podem ser explorados para executar clickjacking, scripts entre sites (XSS) ou coletar informações sobre o ambiente do servidor [S2]. Quando cabeçalhos como Content-Security-Policy (CSP) ou X-Frame-Options são aplicados de forma inconsistente nas rotas, os invasores podem direcionar caminhos desprotegidos específicos para ignorar os controles de segurança em todo o site [S2].

Causa Raiz

Next.js permite que os desenvolvedores configurem cabeçalhos de resposta em next.config.js usando a propriedade headers [S2]. Esta configuração usa correspondência de caminho que suporta curingas e expressões regulares [S2]. As vulnerabilidades de segurança normalmente surgem de:

  • Cobertura de caminho incompleta: padrões curinga (por exemplo, /path*) podem não cobrir todas as subrotas pretendidas, deixando páginas aninhadas sem cabeçalhos de segurança [S2].
  • Divulgação de informações: Por padrão, Next.js pode incluir o cabeçalho X-Powered-By, que revela a versão da estrutura, a menos que seja explicitamente desativado por meio da configuração poweredByHeader [S2].
  • Configuração incorreta de CORS: cabeçalhos Access-Control-Allow-Origin definidos incorretamente na matriz headers podem permitir acesso não autorizado de origem cruzada a dados confidenciais [S2].

Correções de concreto

  • Padrões de caminho de auditoria: certifique-se de que todos os padrões source em next.config.js usem curingas apropriados (por exemplo, /:path*) para aplicar cabeçalhos globalmente quando necessário [S2].
  • Desativar impressão digital: Defina poweredByHeader: false em next.config.js para evitar que o cabeçalho X-Powered-By seja enviado [S2].
  • Restringir CORS: Defina Access-Control-Allow-Origin para domínios confiáveis específicos em vez de curingas na configuração headers [S2].

Como FixVibe testa isso

FixVibe poderia executar uma investigação ativa, rastreando o aplicativo e comparando os cabeçalhos de segurança de várias rotas. Ao analisar o cabeçalho X-Powered-By e a consistência de Content-Security-Policy em diferentes profundidades de caminho, FixVibe pode identificar lacunas de configuração em next.config.js.