Resumen de las mejores prácticas de seguridad
Lista de verificación orientada a OWASP para APIs HTTP y gRPC en Go.
Busca en todas las páginas de la documentación
Lista de verificación orientada a OWASP para APIs HTTP y gRPC en Go.
Aplica estas reglas en las plantillas de servicio, revisión de código y CI para que cada API de Go falle cerrado y se envíe con una higiene medible de la cadena de suministro.
ReadHeaderTimeout en cada http.Server de producción. Bloquea ataques de cabeceras lentas antes de que se ejecuten los manejadores.ReadTimeout, WriteTimeout e IdleTimeout según los SLO. Previene conexiones colgadas y fugas de descriptores.tls.Config.MinVersion a TLS 1.2 o superior en los listeners TLS. Documenta el piso del protocolo aceptable para auditorías.NotAfter. Las cadenas incompletas causan fallos en el cliente; la expiración causa interrupciones.InsecureSkipVerify en clientes salientes de producción. Deshabilita la verificación de certificados y nombres de host.http.Client configuradas con tiempos de espera; nunca uses http.DefaultClient en manejadores. El cliente por defecto no tiene plazo.alg inesperados. Previene ataques de confusión de algoritmos.role: user está presente./metrics, /debug y de administrador con el mismo rigor de autenticación que las APIs. Los atacantes escanean los valores por defecto.http.MaxBytesReader antes de decodificar. Rechaza cargas útiles excesivas de forma temprana.DisallowUnknownFields en APIs públicas estrictas cuando sea apropiado. Expone errores del cliente y sondeos.html/template, no con text/template. Auto-escapa el contenido en contexto HTML.HttpOnly, Secure y SameSite apropiadas. Reduce la exfiltración XSS y el abuso de cookies entre sitios.Origin arbitrarios. CORS abierto más cookies permite el robo de datos.X-Content-Type-Options, ancestros de frame) en todas las respuestas, incluidos los errores. Las cabeceras no deben depender solo de las rutas de éxito.X-Forwarded-For solo de balanceadores de carga conocidos. Previene la suplantación de IP del cliente para límites de tasa y registros de auditoría.crypto/subtle.ConstantTimeCompare. Reduce los canales laterales de temporización.golang.org/x/crypto. Nunca almacenes ni compares contraseñas en texto plano.govulncheck ./... en CI y falla ante hallazgos alcanzables y accionables. Detecta CVEs conocidas en tu grafo de importación.go.sum y ejecuta go mod verify en CI. Detecta la manipulación de módulos en la descarga.go.mod. Los parches de seguridad se aplican en las versiones de parche de Go.replace y las bifurcaciones privadas como código de primera parte. Evita las comprobaciones normales de procedencia de módulos.Los fallos de transporte y autenticación de Nivel A, los hallazgos alcanzables de govulncheck sin excepciones aprobadas y los secretos faltantes al inicio deberían bloquear el despliegue.
Los controles del navegador de Nivel B pueden implementarse por tipo de cliente.
La autenticación rota se relaciona con la sección B; la entrada insegura con C; SSRF y la exposición excesiva de datos con C y el diseño del manejador; la mala configuración con A y D; el inventario y el registro con F y las prácticas de observabilidad.
Sí, con credenciales TLS e interceptores que reemplazan al middleware HTTP para la autenticación, los límites y la validación de metadatos.
Mux dedicado, tiempos de espera del servidor, versión mínima de TLS, middleware de autenticación, límites de cuerpo, SQL parametrizado, govulncheck en CI y clientes salientes configurados.
Aún así, aplica límites más ligeros o cuotas por servicio.
Las cargas de trabajo comprometidas dentro de la malla también generan tráfico abusivo de este a oeste.
Codifica los elementos en pruebas unitarias de arquitectura, wrappers personalizados de golangci-lint y listas de verificación de despliegue vinculadas a metadatos del catálogo de servicios.
Sí, un CSP mínimo y nosniff aún ayudan cuando las respuestas son malinterpretadas por los navegadores o proxies.
Cuando los navegadores nunca envían cookies de sesión y los clientes usan tokens Bearer no accesibles para sitios controlados por atacantes.
La defensa XSS sigue siendo crítica.
Cada compilación de lanzamiento.
Adjunta el SBOM al artefacto OCI de la imagen del contenedor o a la página de lanzamiento.
Los routers de frameworks no eliminan elementos de la lista de verificación.
Verifica que el orden de su middleware preserve la autenticación, los límites y las cabeceras de seguridad según lo previsto.
Versiones de Stack: Esta página fue escrita para Go 1.26.x (predeterminado GC de Green Tea, go fix modernizers - verifica el parche en la compilación), chi (última versión - verifica en la compilación), gin (última versión - verifica en la compilación), echo (última versión - verifica en la compilación), google.golang.org/grpc (última versión - verifica en la compilación), sigs.k8s.io/controller-runtime (última versión - verifica en la compilación), kubebuilder (última versión - verifica en la compilación), tinygo (última versión - verifica los objetivos de la placa en la compilación), wazero (última versión - verifica en la compilación) y golangci-lint (última versión - verifica en la compilación).
Revisado por Chris St. John·Última actualización: 18 jul 2026