Voltar para posts
TIP

A falha de segurança que eu mesmo coloquei no código.

25 de maio de 2026 • 3 min de leitura

Durante uma revisão do projeto da barbearia, encontrei algo que me fez parar.

No arquivo de login, os campos de email e senha tinham valores padrão definidos em código:

email: "gabriel@email.com"

password: "123456"

Eram dados de teste que ficaram esquecidos. Mas em produção, qualquer pessoa que abrisse o DevTools do browser e inspecionasse o JavaScript compilado conseguia ver essas credenciais.

Por que isso é grave

O Next.js compila o código do cliente e serve via JavaScript estático. Qualquer string hardcoded num componente React fica exposta no bundle — incluindo credenciais.

Não é necessário acesso ao repositório. Basta abrir o browser, ir às ferramentas de desenvolvimento e procurar no source.

A correção é simples

tsx
1const [email, setEmail] = useState("");
2const [password, setPassword] = useState("");

Duas strings vazias. Isso é tudo que era preciso.

A lição maior

Dados de teste não devem existir em produção. Parece óbvio, mas quando estás a desenvolver rápido e a iterar, é fácil esquecer o que ficou para trás.

Um processo que ajuda: antes de qualquer deploy, fazer uma busca simples no código por termos como "password", "secret", "token", "123". Não é infalível, mas apanha os casos mais comuns.

Às vezes é sobre não deixar a porta da frente aberta por descuido.