
Rimuovi contenuti simili a credenziali da stringhe di forma libera prima che raggiungano log o telemetria. Parte del toolkit Go phpboyscout. · https://redact.go.phpboyscout.uk
Rimuove contenuti simili a credenziali da stringhe libere prima che raggiungano log, telemetria o qualsiasi superficie di terze parti
Parte del phpboyscout Go toolkit: piccoli moduli Go senza framework estratti da go-tool-base. Documentazione: redact.go.phpboyscout.uk
gitlab.com/phpboyscout/go/redact rimuove contenuti simili a credenziali da stringhe
libere al confine tra superfici di osservabilità attendibili e non attendibili, come
fornitori di telemetria, aggregatori di log e archivi di metriche. Messaggi di errore,
argomenti di comando e valori di header HTTP trasportano abitualmente segreti per
errore (un URL con userinfo incorporato, un flag --api-key=sk-… in os.Args, un
header Authorization citato in un errore di esportazione). Instrada questi valori
attraverso redact.String in uscita e non lasceranno mai il processo in chiaro.
regexp, strings), quindi nient'altro che
il modulo entra nel tuo grafo. Una guardia depfootprint_test.go lo impone, e
vincola i test a testify e al go/errors dell'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 rimuove lo userinfo degli URL per qualsiasi schema (https://, postgres://,
redis://, …), le assegnazioni name=value di credenziali, i campi di credenziali JSON come
"access_token" e "client_secret", i token dell'header Authorization, i JWT,
i prefissi di provider noti (sk-, ghp_, glpat-, AIza, AKIA, Slack),
e i token opachi lunghi. SensitiveHeaderKeys / IsSensitiveHeaderKey identificano
gli header i cui valori dovrebbero essere redatti.
I cataloghi di pattern non raggiungono mai il 100% di recall, e questo è deliberatamente conservativo:
String non maschera valori di header arbitrari. Conosce Authorization:
e nient'altro; X-API-Key: … passa attraverso. È per questo che esistono i simboli
per gli header.Cosa redact non fa dichiara il confine completo.
Guide complete, riferimento e modello di minaccia: redact.go.phpboyscout.uk. Documentazione API generata ed esempi eseguibili: pkg.go.dev.
Vedi LICENSE.