Módulo Transversal — Segredos, credenciais e segurança 🟢

Objectivo: trabalhar como profissional — sem nunca expor chaves nem misturar contas. O momento aha: perceber que segurança não é um extra, é parte de escrever código. Resultado: um projecto com segredos bem geridos.


1. O que é um “segredo”

Qualquer chave, palavra-passe ou token que dá acesso a um serviço (API de pagamentos, base de dados, SMS). Se vaza, alguém pode gastar/roubar em teu nome.

2. Onde vivem os segredos

  • .env.local — segredos do projecto em desenvolvimento. Nunca vai para o GitHub.
  • Variáveis de ambiente na Vercel/servidor — os segredos de produção.
  • Ficheiro central de tokens (fora de qualquer repositório) — chaves partilhadas entre projectos.
# .gitignore — garante que o .env nunca é commitado
.env.local
.env*.local

3. Regras que não se quebram

  1. Nunca commitar segredos. Se acontecer, roda a chave (gera nova) imediatamente.
  2. Nunca imprimir valores de chaves em logs.
  3. service_role / chaves secretas só no servidor — nunca no frontend.
  4. Não misturar contas — o que é teu/da empresa ≠ o que é do cliente.

4. Princípio do menor privilégio

Dá a cada chave só o acesso de que precisa. Uma chave “que faz tudo” é um risco maior se vazar.


✅ Exercícios

  1. .gitignore — confirma que o .env.local está ignorado (git status não o deve mostrar).
  2. Caça ao segredo — procura no teu projecto se alguma chave está escrita no código; move-a para .env.local.
  3. Plano de fuga — descreve, em 3 passos, o que fazes se uma chave for commitada por engano.

Resultado esperado: um repositório onde nenhum segredo aparece no histórico.


⚠️ Erros comuns

  • Commitar o .env — se acontecer, roda a chave imediatamente.
  • Imprimir valores de chaves em logs — mostra só o nome + <redacted>.
  • service_role no frontend — só no servidor, nunca no navegador.
  • A mesma chave “para tudo” — usa o mínimo de privilégio por chave.

📋 Checklist do módulo

  • .env.local no .gitignore
  • Nenhum segredo no código nem em logs
  • service_role só no servidor
  • Cada chave com o mínimo de acesso necessário
🧠 Quiz — testa o que aprendeste

1 Se commitas uma chave por engano, deves…

2 "Menor privilégio" significa…

Material de formação · Desenvolvido por DCSC Tecnologias