Executando verificação de segurança...
15

Técnicas de segurança que uso em meus projetos, técnicas que Vibe coders não fazem

Segurança no Desenvolvimento: Fuja da Armadilha do Vibe Coding com AI:

Com o avanço das AIs e a “simplificação” do desenvolvimento de software, é cada vez mais comum vermos brechas de segurança. Vídeos demonstrando o quão frágeis são alguns SaaS e como é fácil invadir ou manipular dados estão se tornando frequentes.

Existem muitos fatores que contribuem para essas falhas, mas um dos principais é o Vibe Coding: a prática de criar produtos sem saber programar de verdade, ou sabendo apenas o básico, geralmente com o apoio de inteligências artificiais como Claude, Cursor, Windsurf, entre outros.

Neste post, quero te mostrar algumas práticas fundamentais para evitar cair na armadilha do Vibe Coding. São cuidados simples, mas que fazem toda a diferença na segurança do seu projeto.

1 - Dividir Client-Side e Server-Side:

Para nós desenvolvedores isso pode parecer muito básico e simples, principalmente você que estudou como funciona os navegadores e o build de arquivos estáticos do seu projeto no navegador, mas isso pode passar despercebido principalmente quando é muito comum ter toda a aplicação em um projeto React + VITE por exemplo

Divida sua aplicação em Front-end e Back-end(API), principalmente quando há integrações com outros sistemas que precisam de ApiKey, Credenciais, ConnectionStrings de Banco de dados.

Todas essas variáveis de ambiente ficam expostas no index.js do site, caso um conhecedor do assunto tente procurar usando o DevTools, será possível achar essas variáveis mesmo que no seu ambiente de desenvolvimento tenha um .env.

Faça essas integrações que necessitam de variáveis de ambiente importantes, no Back-end, onde você pode subir em uma Cloud ou Vps e não fique exposto para todos no navegador.

2 - Armazenar o Salt-Hash da senha do usuário, e não o valor da senha bruta:

Acredito ser essencial saber disso, armazenar SaltHash da senha no banco é essencial, pois caso seu banco acabe sendo invadido, a última barreira para o invasor descobrir senhas e acabar vazando elas como muito acontece por ai, é transformar a senha em um SaltHash, Hashs são irreversíveis, não é possível saber qual era o valor antes de se tornar aquela sequência de caracteres.

É possível gerar esse Hash com Bibliotecas como:

  • BCrypt
  • argon2
  • (Pesquise Bibliotecas que tem suporte a tecnologia que você usa).

Deixarei algumas fontes sobre esse assunto que me ajudaram a entender mais sobre segurança e senhas:

3 - Autenticação e Validação dos dados que chegam na Sua API:

Parabéns você entendeu que precisa de um Backend(API) caso tenha ApiKeys, Credenciais sigilosas e você pode perder dinheiro caso sejam vazadas, mas agora que você entendeu isso, é preciso estudar e entender como proteger sua API de usuários mal intencionados ou apenas problemas de B.I.O.S (Burro Ignorante Operando Sistema).

Aprenda a Autenticar sua API, proteger seus Endpoints, Gerar Tokens de Autenticação (JWT por exemplo), para que apenas pessoas autorizadas de acordo com a lógica do seu sistema possam ter acesso aos dados e funcionalidades da API.

Caso seja possível usar seu site sem Login, é interessante implementar um ReCaptcha por exemplo, expira muito rápido e muito díficil de replicar na força bruta, foi o que usei para disponibilizar minha ferramenta, o CurriculumAdapter

Valide os dados que estão chegando na API, valide seus formulários no Front-End e o Payload no Backend, para os desenvolvedores C# por exemplo é comum usarmos o FluentValidation ou DataAnnotation nas propriedades da classe

4 - Implemente Rate Limiting para evitar abusos

Mesmo com autenticação e validação, sua API ainda pode ser alvo de abusos. Alguém pode, por exemplo, disparar centenas de requisições por minuto para:

  • Forçar tentativas de login (ataques de força bruta);
  • Derrubar sua API com excesso de chamadas (DDoS);
  • Exceder o uso de recursos e gerar custos desnecessários (em APIs pagas ou servidores).

É aí que entra o Rate Limiting, um mecanismo que limita o número de requisições por IP, por usuário, ou por token em um determinado período de tempo.

Exemplos:

  • Máximo de 10 requisições por minuto para o endpoint de login.
  • Bloqueio temporário de IPs que estourarem os limites com muita frequência.

Ferramentas recomendadas:

  • Node.js/Express: express-rate-limit

  • .NET/C#: Middleware com políticas de RateLimiterOptions no .NET 7+

APIs em geral: serviços como Cloudflare, AWS API Gateway e NGINX têm suporte nativo a rate limiting.

Obsevações Finais:

Claro que existem outras e outras formas de prevenir brechas de segurança, mas algumas vão depender das regras de negócio do seu sistema

Tome cuidado para cair na ladainha do Vibe Coding e um invasor poder assinar seu SaaS por 5 reais enquanto a assinatura é 30

Carregando publicação patrocinada...
4

Excelente post cara!

Pena que 99% da galera nunca vai sair nem do básico. “Vibe coder” de tutorial e prompt acha que ambiente .env é proteção. Tá todo mundo construindo castelo de cartas e chamando de engenharia — e os C-Level batendo palma, acreditando que chatbot resolve vulnerabilidade de produção.

O mais divertido é ver diretoria de banco incentivando dev a colar código de IA em pipeline de produção, achando que tão surfando a “onda da inovação”. Quero ver a cara desses gênios no dia do vazamento, explicando pro compliance que expôs metade do país porque mandaram “automatizar” até o raciocínio.

Mas é isso aí, segue o fluxo: todo mês algum SaaS explode, dados vazam, usuário toma prejuízo, empresa some com aviso de desculpa genérica. O ciclo se repete — e sempre tem alguém achando que “dessa vez vai ser diferente” porque agora usaram prompt novo do Claude ou do GPT.

E se o pessoal já fica perdido com variável de ambiente, hash e validação básica, nem imagina o que dá pra fazer só mexendo no DNS. Spoofing, envenenamento, sequestro de domínio…

É como entregar a chave do cofre pro primeiro curioso que passar.

2

É isso mesmo cara, o que mais acontece são empresas incentivando o uso de IA no desenvolvimento, e a maioria delas vendem alguma solução de IA, infelizmente esse é o jogo, não podemos esquecer das boas práticas de segurança, não adianta ser 100% produtivo se o que você produz é inseguro

3

A serie Ruptura tem uma critica brutal ao jogo, vulgo teatro, corporativo.

Eu resolvi sair desse jogo e contruir as minhas proprias regras, sinceramente, cansei!

3
2

Exatamente, a segurança exige camadas, do mesmo jeito que existe milhares de ataques cibernéticos, existe milhares de jeito de prevenir esses ataques, é um junção de fatores

2
0