Todos os guias
Severidade AltaErros de configuração

Source maps em produção vazam o seu código-fonte

Os source maps (arquivos .js.map) permitem que os navegadores mapeiem o código minificado de volta para o seu código original. Se forem servidos publicamente em produção, qualquer um pode reconstruir toda a sua base de código sem minificar, comentários e tudo.

O que é

As ferramentas de build geram source maps para ajudar na depuração. Quando o bundle minificado referencia um arquivo .map que também foi publicado, o navegador — e qualquer pessoa — pode baixar o código original.

Isso expõe a lógica interna, os nomes, os comentários TODO e, às vezes, valores hardcoded que revelam como o seu backend e a sua autenticação funcionam.

Por que importa

Um código legível torna muito mais fácil para os atacantes encontrarem falhas de lógica, endpoints ocultos e validações que rodam só no cliente.

Ele também pode vazar segredos ou URLs internas que se supunha estarem 'escondidas' dentro do bundle.

Como corrigir

Desative os source maps de produção no Next.js

Desligue os source maps do navegador nos builds de produção.

// next.config.js
module.exports = { productionBrowserSourceMaps: false };
Ou mantenha-os privados

Se você precisa de source maps para o monitoramento de erros, envie-os para o seu rastreador de erros (por exemplo, o Sentry) e retire-os do build público em vez de servi-los.

Confirme que sumiram

Depois do deploy, acesse uma das URLs .map do seu bundle. Ela deve retornar 404, não o source map em JSON.

FAQ

Os source maps são sempre ruins?

Não — eles são valiosíssimos para depurar. O problema é servi-los publicamente em produção. Em vez disso, mantenha-os no seu pipeline de monitoramento.

A minificação protege o meu código?

Só superficialmente. Com um source map público, a minificação é totalmente revertida de volta para um código legível.

Seu app está afetado?

O AppSafe verifica isso e dezenas de outros problemas em um único escaneamento grátis.

Escanear meu app grátis