
Elimina contenido similar a credenciales de cadenas de forma libre antes de que lleguen a registros o telemetría. Parte del kit de herramientas Go phpboyscout. · https://redact.go.phpboyscout.uk
Elimina contenido similar a credenciales de cadenas de formato libre antes de que lleguen a registros, telemetría o cualquier superficie de terceros
Parte del phpboyscout Go toolkit: módulos Go pequeños y sin framework extraídos de go-tool-base. Documentación: redact.go.phpboyscout.uk
gitlab.com/phpboyscout/go/redact redacta contenido similar a credenciales de cadenas de formato libre en la frontera entre superficies de observabilidad confiables y no confiables, como proveedores de telemetría, agregadores de registros y almacenes de métricas. Los mensajes de error, los argumentos de comandos y los valores de encabezados HTTP transportan secretos de forma rutinaria por accidente (una URL con userinfo incrustado, un flag --api-key=sk-… en os.Args, un encabezado Authorization citado en un error de exportación). Hazlos pasar por redact.String a la salida y nunca abandonarán el proceso en texto claro.
regexp, strings), así que nada más que el módulo entra en tu grafo. Un guardián depfootprint_test.go lo impone, y mantiene las pruebas en testify y el go/errors del ecosistema.go get gitlab.com/phpboyscout/go/redact
import "gitlab.com/phpboyscout/go/redact"
safe := redact.String("failed calling https://user:[email protected]?api_key=sk-abc123…")
// → credentials in the URL userinfo, the api_key query param, and the sk- token are masked
msg := redact.Error(err) // redact.String applied to err.Error() (nil-safe)
if redact.IsSensitiveHeaderKey("Authorization") { /* … redact this header's value … */ }
redact.String elimina el userinfo de URL para cualquier esquema (https://, postgres://, redis://, …), asignaciones de credenciales name=value, campos de credenciales JSON como "access_token" y "client_secret", tokens de encabezado Authorization, JWTs, prefijos de proveedores conocidos (sk-, ghp_, glpat-, AIza, AKIA, Slack) y tokens opacos largos. SensitiveHeaderKeys / IsSensitiveHeaderKey identifican encabezados cuyos valores deben ser redactados.
Los catálogos de patrones nunca alcanzan el 100% de recall, y este es deliberadamente conservador:
String no enmascara valores de encabezado arbitrarios. Conoce Authorization: y nada más; X-API-Key: … pasa de largo. Para eso están los símbolos de encabezado.Lo que redact no hace establece la frontera completa.
Guías completas, referencia y modelo de amenazas: redact.go.phpboyscout.uk. Documentación de API generada y ejemplos ejecutables: pkg.go.dev.
Ver LICENSE.