Go — Segurança

TL;DR

Galho 19 da trilha Go — o que Go dá de graça (memory safety) e o que continua sendo sua responsabilidade. 8 notas em 3 fases: o panorama de segurança (Iniciado); crypto na stdlib, TLS, validação de input e govulncheck/supply chain (Adepto); secrets, secure coding patterns e AuthN/AuthZ em serviços (Magus). Ao fim, você escreve serviços Go que resistem aos ataques comuns e faz a ponte com a trilha Auth e Identidade.

Go elimina classes inteiras de bug de memória, mas validação, cripto correta, TLS e supply chain seguem por sua conta. Ver roadmap pro estado das notas.

Notas por fase

Iniciado — o panorama

  1. 01 - Segurança em Go — o panorama — memory safety de graça, o que ainda é responsabilidade do dev

Adepto — as defesas concretas

  1. 02 - crypto na stdlibcrypto/*, hashing, HMAC, senhas com bcrypt/argon2, nunca rolar sua cripto
  2. 03 - TLS em Gocrypto/tls, servidor e cliente HTTPS, verificação de certificado, mTLS
  3. 04 - Validação e sanitização de input — validar tudo, queries parametrizadas, escaping de template
  4. 05 - govulncheck e supply chaingovulncheck, go.sum, GOPROXY/GOSUMDB, auditar dependências

Magus — endurecimento e identidade

  1. 06 - Secrets e configuração segura — nunca hardcode, não vazar em logs, rotação, superfície de vazamento
  2. 07 - Secure coding patterns — comparação timing-safe, crypto/rand, overflow, defesa em profundidade
  3. 08 - AuthN e AuthZ em serviços Go — JWT, middleware de auth, RBAC; ponte para a trilha Auth e Identidade

Veja também

  • Trilha Go — índice geral (21 galhos + capstone)
  • Galho anterior: Cloud-native e produção
  • Próximo galho: Go idiomático (galho 20) — a síntese: escrever Go que não parece Java escrito em Go