Resumo de Melhores Práticas de Segurança
Lista de verificação orientada pela OWASP para APIs HTTP e gRPC em Go.
Busque em todas as páginas da documentação
Lista de verificação orientada pela OWASP para APIs HTTP e gRPC em Go.
Aplique estas regras em modelos de serviço, revisão de código e CI para que toda API Go falhe fechada e seja lançada com higiene mensurável da cadeia de suprimentos.
ReadHeaderTimeout em cada http.Server de produção. Bloqueia ataques de slow header antes que os handlers sejam executados.ReadTimeout, WriteTimeout e IdleTimeout por SLO. Previne conexões pendentes e vazamentos de descritores.tls.Config.MinVersion para TLS 1.2 ou superior em listeners TLS. Documenta o limite de protocolo aceitável para auditorias.NotAfter. Cadeias incompletas causam falhas no cliente; o vencimento causa interrupções.InsecureSkipVerify em clientes de saída de produção. Desabilita a verificação de certificado e nome de host.http.Client configuradas com timeouts; nunca http.DefaultClient em handlers. O cliente padrão não tem prazo.alg inesperados. Previne ataques de confusão de algoritmo.role: user está presente./metrics, /debug e de administrador com o mesmo rigor de autenticação das APIs. Atacantes escaneiam padrões.http.MaxBytesReader antes da decodificação. Rejeita payloads excessivamente grandes precocemente.DisallowUnknownFields em APIs públicas estritas quando apropriado. Expõe bugs do cliente e sondagens.html/template, não text/template. Auto-escapa conteúdo em contexto HTML.HttpOnly, Secure e SameSite apropriado. Reduz a exfiltração de XSS e o abuso de cookies entre sites.Origin arbitrários. CORS aberto mais cookies permite roubo de dados.X-Content-Type-Options, frame-ancestors) em todas as respostas, incluindo erros. Cabeçalhos não devem depender apenas dos caminhos de sucesso.X-Forwarded-For apenas de balanceadores de carga conhecidos. Previne spoofing de IP do cliente para limites de taxa e logs de auditoria.crypto/subtle.ConstantTimeCompare. Reduz canais laterais de tempo.golang.org/x/crypto. Nunca armazene ou compare senhas em texto plano.govulncheck ./... em CI e falhe em descobertas alcançáveis e acionáveis. Captura CVEs conhecidos em seu grafo de importação.go.sum e execute go mod verify em CI. Detecta adulteração de módulos no download.go.mod. Patches de segurança chegam em releases patch do Go.replace e forks privados como código de primeira parte. Ignora verificações normais de proveniência de módulos.Falhas de transporte e autenticação da Camada A, descobertas de govulncheck alcançáveis sem exceções aprovadas e segredos ausentes na inicialização devem bloquear o deploy.
Controles de navegador da Camada B podem ser implementados por tipo de cliente.
Autenticação quebrada mapeia para a seção B; entrada insegura para C; SSRF e exposição excessiva de dados para C e design de handler; configuração incorreta para A e D; inventário e logging para F e práticas de observabilidade.
Sim, com credenciais TLS e interceptores substituindo middleware HTTP para autenticação, limites e validação de metadados.
Mux dedicado, timeouts de servidor, versão mínima TLS, middleware de autenticação, limites de corpo, SQL parametrizado, govulncheck em CI e clientes de saída configurados.
Aplique limites mais leves ou cotas por serviço ainda assim.
Workloads comprometidos dentro da malha geram tráfego leste-oeste abusivo também.
Codifique itens em testes de unidade de arquitetura, wrappers personalizados do golangci-lint e listas de verificação de implantação vinculadas a metadados do catálogo de serviços.
Sim - CSP mínimo e nosniff ainda ajudam quando respostas são mal interpretadas por navegadores ou proxies.
Quando navegadores nunca enviam cookies de sessão e clientes usam tokens Bearer não acessíveis a sites controlados por atacantes.
A defesa contra XSS permanece crítica.
A cada build de release.
Anexe o SBOM ao artefato OCI da imagem do contêiner ou à página de release.
Roteadores de framework não removem itens da lista de verificação.
Verifique se a ordem de seus middlewares preserva autenticação, limites e cabeçalhos de segurança conforme pretendido.
Versões de Stack: Esta página foi escrita para Go 1.26.x (GC padrão Green Tea, go fix modernizers - verifique o patch na compilação), chi (mais recente - verifique na compilação), gin (mais recente - verifique na compilação), echo (mais recente - verifique na compilação), google.golang.org/grpc (mais recente - verifique na compilação), sigs.k8s.io/controller-runtime (mais recente - verifique na compilação), kubebuilder (mais recente - verifique na compilação), tinygo (mais recente - verifique os alvos de placa na compilação), wazero (mais recente - verifique na compilação) e golangci-lint (mais recente - verifique na compilação).
Revisado por Chris St. John·Última atualização: 18 de jul. de 2026