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