
Entferne credential-ähnliche Inhalte aus Freitext-Strings, bevor sie in Logs oder Telemetrie gelangen. Teil des phpboyscout Go-Toolkits. · https://redact.go.phpboyscout.uk
Entfernt credential-ähnliche Inhalte aus Freitext-Strings, bevor sie Logs, Telemetrie oder andere Drittanbieter-Oberflächen erreichen
Teil des phpboyscout Go toolkit: kleine, framework-freie Go-Module, extrahiert aus go-tool-base. Docs: redact.go.phpboyscout.uk
gitlab.com/phpboyscout/go/redact entfernt credential-ähnliche Inhalte aus Freitext-Strings an der Grenze zwischen vertrauenswürdigen und nicht vertrauenswürdigen Observability-Oberflächen, wie etwa Telemetrie-Anbietern, Log-Aggregatoren und Metrik-Speichern. Fehlermeldungen, Kommandozeilenargumente und HTTP-Header-Werte tragen routinemäßig versehentlich Secrets mit sich (eine URL mit eingebetteten Userinfo, ein --api-key=sk-…-Flag in os.Args, ein Authorization-Header, der in einem Export-Fehler zitiert wird). Leite diese auf dem Weg nach draußen durch redact.String, und sie verlassen den Prozess nie im Klartext.
regexp, strings), sodass nichts außer dem Modul in deinen Graphen gelangt. Ein depfootprint_test.go-Guard erzwingt dies und hält die Tests bei testify und dem go/errors des Estates.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 entfernt URL-Userinfo für jedes Schema (https://, postgres://,
redis://, …), Credential-name=value-Zuweisungen, JSON-Credential-Felder wie
"access_token" und "client_secret", Authorization-Header-Tokens, JWTs,
bekannte Provider-Präfixe (sk-, ghp_, glpat-, AIza, AKIA, Slack)
und lange Opaque-Tokens. SensitiveHeaderKeys / IsSensitiveHeaderKey identifizieren
Header, deren Werte redigiert werden sollten.
Musterkataloge erreichen nie 100 % Recall, und dieser ist bewusst konservativ:
String maskiert keine beliebigen Header-Werte. Es kennt Authorization:
und sonst nichts; X-API-Key: … geht durch. Dafür sind die Header-
Symbole da.Was redact nicht tut beschreibt die vollständige Grenze.
Vollständige Anleitungen, Referenz und Threat Model: redact.go.phpboyscout.uk. Generierte API-Docs und ausführbare Beispiele: pkg.go.dev.
Siehe LICENSE.