
# Remova conteúdo semelhante a credenciais de strings de formato livre antes que elas cheguem a logs ou telemetria. Parte do kit de ferramentas Go phpboyscout. · https://redact.go.phpboyscout.uk
Remova conteúdo semelhante a credenciais de strings de formato livre antes que cheguem a logs, telemetria ou qualquer superfície de terceiros
Parte do phpboyscout Go toolkit: módulos Go pequenos e sem framework extraídos do go-tool-base. Documentação: redact.go.phpboyscout.uk
gitlab.com/phpboyscout/go/redact remove conteúdo semelhante a credenciais de strings
de formato livre na fronteira entre superfícies de observabilidade confiáveis e não
confiáveis, como fornecedores de telemetria, agregadores de logs e armazenamentos de métricas.
Mensagens de erro, argumentos de comando e valores de cabeçalhos HTTP carregam rotineiramente
segredos por acidente (uma URL com userinfo incorporado, uma flag --api-key=sk-… em
os.Args, um cabeçalho Authorization citado num erro de exportação). Encaminhe esses
dados por redact.String na saída e eles nunca deixam o processo em texto claro.
regexp, strings), então nada além
do módulo entra no seu grafo. Uma proteção depfootprint_test.go impõe isso, e
mantém os testes em testify e no go/errors do estate.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 remove o userinfo de URLs para qualquer esquema (https://, postgres://,
redis://, …), atribuições de credenciais name=value, campos de credenciais JSON como
"access_token" e "client_secret", tokens de cabeçalho Authorization, JWTs,
prefixos de provedores conhecidos (sk-, ghp_, glpat-, AIza, AKIA, Slack),
e tokens opacos longos. SensitiveHeaderKeys / IsSensitiveHeaderKey identificam
cabeçalhos cujos valores devem ser redigidos.
Catálogos de padrões nunca alcançam 100% de recall, e este é deliberadamente conservador:
String não mascara valores de cabeçalho arbitrários. Ele conhece Authorization:
e nada mais; X-API-Key: … passa direto. É para isso que servem os símbolos de cabeçalho.O que o redact não faz declara a fronteira completa.
Guias completos, referência e modelo de ameaças: redact.go.phpboyscout.uk. Documentação de API gerada e exemplos executáveis: pkg.go.dev.
Veja LICENSE.