Nunca Receba Preço no Back-End: Proteja Seu Sistema Agora
Descubra o erro fatal de receber preços do front-end e o que fazer para impedir brechas e fraudes em sistemas modernos com React e Next.js.
Por que isso é importante
Toda vez que um sistema recebe o preço de um produto enviado pelo front-end, a segurança está em risco. Qualquer usuário pode manipular esse dado e até fazer compras fraudulentas. Proteja seu negócio e evite prejuízos aplicando técnicas corretas desde o início.
Nunca Confie no Preço Vindo do Front-End
Se há uma coisa que pode quebrar sua loja online, é acreditar nos dados que chegam do navegador do cliente. Não aceite o preço do produto via front-end em sua API ou back-end. Um usuário malicioso pode facilmente alterar esses valores antes do envio para o servidor.
Server Actions São Rotas de API Disfarçadas
No Next.js, server actions parecem mágicas, mas são, no fundo, rotas de API. Nunca esqueça: tudo que chega ao back-end, via rota ou server action, precisa ser tratado com desconfiança e validação rigorosa.
⚠️Atenção
Mesmo componentes do Next que parecem seguros ainda podem ser explorados se a lógica confiar em dados manipuláveis.
Como as Brechas Acontecem na Prática
Imagine um e-commerce famoso. Se o sistema aceitar que o preço seja decidido pelo front-end, qualquer script pode interceptar e substituir aquele valor ao clicar em “comprar”, burlando a cobrança verdadeira. O resultado? Prejuízo direto para a loja.
❌Atenção
Fraudes de preço são um dos golpes mais comuns no comércio digital: nunca envie valores críticos do cliente para o servidor sem validação.
A Solução: Only IDs, Never Values
O único valor que você deve receber do front-end é o identificador do produto, nunca o preço em si. O back-end sempre consulta o banco de dados para buscar o valor real e atualizado, calculando o preço certo e processando a venda com segurança.
Como Implementar: Passo a Passo no Next.js
Enviando Apenas o ID do Produto
No formulário, envie apenas o ID do produto selecionado. Não envie valores monetários ou descontos. O back-end cuidará de descobrir o preço real.
Recuperando o Preço no Server Action
Dentro da server action, primeiro capture o ID do produto. Em seguida, faça a consulta segura ao seu banco para descobrir o preço atual daquele produto.
ℹ️Atenção
Nunca acredite em variáveis de preço vindas do front-end. Faça sempre a recuperação do valor pelo back-end atualizado.
Validação Contra Manipulação de Dados
Mesmo recebendo o ID, ainda é possível alguém tentar passar um ID inválido, de outro produto ou até forjar um ID inexistente. Por isso, valide a existência do produto antes de prosseguir com a venda.
⚠️Atenção
Use validações rigorosas e feedback claro para bloquear tentativas de exploração.
Como Tratar Fraudes e Logs Suspeitos
Mantenha logs detalhados de tentativas inválidas, IDs inexistentes ou manipulação de rota. Isso ajuda a identificar padrões de ataque e proteger ainda mais seu sistema.
Atualize Preços Sempre no Back-End
Promoções, regras de desconto e cupons devem ser computados pelo servidor após consulta ao banco. Assim você evita que o usuário tente aplicar descontos indevidos.
✅Atenção
Centralize todas as validações e operações críticas no back-end para garantir o valor correto em cada transação.
O Que Evitar: Má Prática em Sistemas
Jamais exponha lógica de cálculo de preço no front-end. Não envie listas de preços para o cliente decidir o valor final. Quem determina o valor é o servidor, não o navegador.
❌Atenção
Evite processar descontos ou cálculos sensíveis no front-end: tudo que roda do lado do cliente pode ser alterado ou explorado.
Ferramentas e Recursos para Blindar Seu Sistema
Auditoria de logs, monitoramento de rotas, ferramentas como Prisma, Zod e middlewares customizados trazem uma camada extra de segurança. Procure sempre atualizar suas dependências e monitorar vulnerabilidades conhecidas.
Exemplos de Código Seguro em Next.js
Ao receber o ID do produto na server action, consulte o banco usando Prisma, por exemplo, e nunca armazene preços temporários no front-end. Sempre valide a fonte de cada valor sensível antes de processar o pedido.
Resumo: Nunca Perca a Autoridade do Back-End
Quem comanda o preço final é o back-end. Não importa quanto o usuário tente manipular: a última palavra deve ser do servidor. Faça disso uma regra de ouro para todo sistema de vendas online ou marketplace moderno.
Quer Aprender Mais? Dev Doido Tem Conteúdo Exclusivo
No youtube.com/@DevDoido você pode ir mais fundo em segurança de sistemas, Next.js, React e desenvolvimento web com dicas de um canal que vive o código todo dia. Passe por lá agora e aprofunde seu conhecimento!