
Strip credential-like content from free-form strings before they reach logs or telemetry. Part of the phpboyscout Go toolkit. · https://redact.go.phpboyscout.uk
Rimuovi contenuti simili a credenziali da stringhe libere prima che raggiungano log, telemetria o qualsiasi superficie di terze parti
Parte del phpboyscout Go toolkit — moduli Go piccoli e senza framework estratti da go-tool-base. Documentazione: redact.go.phpboyscout.uk
gitlab.com/phpboyscout/go/redact oscura contenuti simili a credenziali da stringhe libere al confine tra superfici di osservabilità attendibili e non attendibili — fornitori di telemetria, aggregatori di log, archivi di metriche. Messaggi di errore, argomenti dei comandi e valori di header HTTP trasportano regolarmente segreti per sbaglio (un URL con userinfo incorporato, un flag --api-key=sk-… in os.Args, un header Authorization citato in un errore di esportazione). Instradali attraverso redact.String al momento dell'uscita e non lasceranno mai il processo in chiaro.
regexp, strings) — nulla oltre al modulo entra nel tuo grafo. Un controllo depfootprint_test.go lo impone.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 rimuove lo userinfo dagli URL per qualsiasi schema (https://, postgres://, redis://, …), assegnazioni di credenziali name=value, campi JSON di credenziali come "access_token" e "client_secret", token di header Authorization, JWT, prefissi di provider noti (sk-, ghp_, glpat-, AIza, AKIA, Slack) e token opachi lunghi. SensitiveHeaderKeys / IsSensitiveHeaderKey identificano gli header i cui valori dovrebbero essere oscurati.
I cataloghi di pattern non raggiungono mai una recall del 100% e questo è deliberatamente conservativo:
String non maschera valori di header arbitrari. Conosce Authorization: e nient'altro; X-API-Key: … passa oltre. È a questo che servono i simboli degli header.Cosa redact non fa descrive l'intero confine.
Guide complete, riferimento e modello di minaccia: redact.go.phpboyscout.uk. Documentazione API generata ed esempi eseguibili: pkg.go.dev.
Vedi LICENSE.