
स्वतंत्र-रूप स्ट्रिंग्स से क्रेडेंशियल-जैसी सामग्री को हटाएँ, इससे पहले कि वे लॉग या टेलीमेट्री तक पहुँचें। phpboyscout Go टूलकिट का हिस्सा। · https://redact.go.phpboyscout.uk
लॉग, टेलीमेट्री या किसी भी तृतीय-पक्ष सतह तक पहुँचने से पहले फ्री-फॉर्म स्ट्रिंग्स से क्रेडेंशियल-जैसी सामग्री हटाएँ
phpboyscout Go टूलकिट का हिस्सा — go-tool-base से निकाले गए छोटे, फ्रेमवर्क-मुक्त Go मॉड्यूल। दस्तावेज़: redact.go.phpboyscout.uk
gitlab.com/phpboyscout/go/redact विश्वसनीय (trusted) और अविश्वसनीय (untrusted) ऑब्ज़र्वेबिलिटी सतहों — टेलीमेट्री वेंडर, लॉग एग्रीगेटर, मेट्रिक स्टोर — के बीच की सीमा (boundary) पर फ्री-फॉर्म स्ट्रिंग्स से क्रेडेंशियल-जैसी सामग्री रिडैक्ट करता है। एरर संदेश, कमांड आर्गुमेंट और HTTP हेडर मान अक्सर गलती से रहस्य (secrets) ले जाते हैं (एम्बेडेड userinfo वाला URL, os.Args में --api-key=sk-… फ़्लैग, किसी एक्सपोर्ट एरर में उद्धृत Authorization हेडर)। बाहर जाते समय उन्हें redact.String से गुज़ारें और वे प्रोसेस से कभी भी सादे (clear) रूप में बाहर नहीं निकलेंगे।
regexp, strings) — आपके ग्राफ़ में मॉड्यूल के अलावा कुछ नहीं जाता। एक depfootprint_test.go गार्ड इसे लागू करता है।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 किसी भी स्कीम (https://, postgres://, redis://, …) के लिए URL userinfo, क्रेडेंशियल name=value असाइनमेंट, "access_token" और "client_secret" जैसे JSON क्रेडेंशियल फ़ील्ड, Authorization-हेडर टोकन, JWT, जाने-माने प्रोवाइडर प्रीफ़िक्स (sk-, ghp_, glpat-, AIza, AKIA, Slack) और लंबे अपारदर्शी टोकन हटाता है। SensitiveHeaderKeys / IsSensitiveHeaderKey उन हेडरों की पहचान करते हैं जिनके मान रिडैक्ट किए जाने चाहिए।
पैटर्न कैटलॉग कभी भी 100% रिकॉल तक नहीं पहुँचते, और यह जानबूझकर रूढ़िवादी है:
String मनमाने हेडर मानों को मास्क नहीं करता। यह केवल Authorization: जानता है और कुछ नहीं; X-API-Key: … पास हो जाता है। हेडर प्रतीक इसी के लिए हैं।redact क्या नहीं करता पूरी सीमा बताता है।
संपूर्ण गाइड, संदर्भ (reference) और खतरा मॉडल: redact.go.phpboyscout.uk। जनरेटेड API दस्तावेज़ और चलाने योग्य उदाहरण: pkg.go.dev।
देखें LICENSE।