पाठ 13 / 25
Secrets Redact करना
अंतिम बचाव के रूप में tool output और logs से secret जैसा दिखने वाला text हटाएँ।
सुरक्षा जाल, दीवार नहीं
Redaction filter logs, prompts या chat में जाते text को स्कैन करता है और जाने-पहचाने secret formats (cloud key IDs, GitHub tokens, password=...) को प्लेसहोल्डर से बदल देता है। यह दुर्घटनाएँ पकड़ता है पर हर secret नहीं पहचान सकता, और हानिरहित text पर भी ज़्यादा मेल कर सकता है। इसे secrets दूर रखने के अलावा उपयोग करें, उसकी जगह कभी नहीं।
Redactor, चलाकर
मैंने यह चलाया। Key और password बदल दिए गए और सामान्य text अछूता है। ध्यान दें कि व्यापक password=... pattern उसी token पर बाद की चीज़ें भी निगल लेता है।
import re
PATTERNS = [re.compile(r"AKIA[0-9A-Z]{16}"),
re.compile(r"ghp_[A-Za-z0-9]{36}"),
re.compile(r"(?i)(password|secret|token)\s*[=:]\s*\S+")]
def redact(text):
for p in PATTERNS:
text = p.sub("[REDACTED]", text)
return text
print(redact("aws=AKIAABCDEFGHIJKLMNOP password=hunter2 note=ok"))
Output:
aws=[REDACTED] [REDACTED] note=ok
जो leak हुआ उसे बदलें
Redaction उस secret को वापस नहीं भेज सकता जो model provider या log तक पहुँच चुका। असली credential output में दिखे तो उसे उजागर मानें और बदल दें।
त्वरित जाँच: Redaction filter की सही भूमिका क्या है?
- Access control का विकल्प
- Secrets दूर रखने के साथ अंतिम सुरक्षा जाल
- Secrets सुरक्षित रूप से साझा करने का तरीक़ा
- कुछ भी leak न होने की गारंटी
Answer
Secrets दूर रखने के साथ अंतिम सुरक्षा जाल — यह ग़लतियाँ पकड़ता है पर अपूर्ण है, इसलिए रोकथाम पहले आती है।