Nunca confiar no Frontend
Esta é a regra de ouro do desenvolvimento Web. O Frontend (HTML, CSS e JavaScript) reside no dispositivo do usuário, o que significa que ele está sob o controle total do usuário.
Por que não confiar?
- Um usuário pode abrir o DevTools e alterar qualquer variável de estado.
- Um usuário pode interceptar e modificar requisições de rede.
- Um usuário pode ignorar totalmente sua interface e fazer requisições diretamente para a API usando ferramentas como
curl,Postmanou scripts.
O Papel do Frontend
O Frontend deve ser visto como uma ferramenta de conveniência e experiência do usuário, não como uma ferramenta de segurança. As validações no Frontend servem para dar feedback rápido ao usuário, não para proteger o sistema.
Como fazer vs Como não fazer
✅ Como fazer
- Considere o Frontend como um ambiente hostil e não confiável.
- Utilize validações no Frontend para melhorar a UX (ex: mostrar que um e-mail é inválido antes de ele clicar em enviar).
- Garanta que toda e qualquer regra de segurança, permissão ou validação crítica seja implementada e verificada no Backend.
❌ Como não fazer
- Jamais confie que um dado é válido apenas porque ele passou pela validação do formulário.
- Não oculte botões ou abas apenas como forma de segurança; se o usuário não pode acessar uma funcionalidade, a API deve bloquear o acesso ao endpoint correspondente (403 Forbidden).
- Não envie informações sensíveis (como preços originais, IDs internos desnecessários ou campos de permissão) para o Frontend esperando que ele as "mantenha em segredo". Se o dado está no Frontend, o usuário pode vê-lo.