
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
أزل المحتوى الشبيه ببيانات الاعتماد من السلاسل النصية الحرّة قبل أن تصل إلى السجلات أو أنظمة القياس عن بُعد أو أي سطح تابع لجهة خارجية
جزء من مجموعة أدوات phpboyscout Go — وحدات Go صغيرة بلا أُطر عمل، مستخرجة من go-tool-base. التوثيق: redact.go.phpboyscout.uk
تُزيل gitlab.com/phpboyscout/go/redact المحتوى الشبيه ببيانات الاعتماد من السلاسل النصية الحرّة عند الحدود بين أسطح المراقبة الموثوقة وغير الموثوقة — مورّدي أنظمة القياس عن بُعد، ومجمّعي السجلات، ومخازن المقاييس. تحمل رسائل الأخطاء ووسائط الأوامر وقيم ترويسات HTTP أسرارًا بالصدفة بصورة روتينية (عنوان URL يتضمّن معلومات مستخدم مضمّنة، أو علَم --api-key=sk-… في os.Args، أو ترويسة Authorization مُقتبسة ضمن خطأ تصدير). مرّر هذه القيم عبر redact.String عند الخروج ولن تغادر العملية أبدًا بشكل صريح.
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 معلومات مستخدم URL لأي مخطط (https://، postgres://، redis://، …)، وتعيينات بيانات الاعتماد بصيغة name=value، وحقول بيانات الاعتماد في JSON مثل "access_token" و"client_secret"، ورموز ترويسة Authorization، ورموز JWT، وبادئات المورّدين المعروفة (sk-، ghp_، glpat-، AIza، AKIA، Slack)، والرموز الطويلة غير الشفافة. يحدّد SensitiveHeaderKeys / IsSensitiveHeaderKey الترويسات التي يجب إخفاء قيمها.
لا تصل فهارس الأنماط أبدًا إلى نسبة استدعاء 100%، وهذا الفهرس متحفّظ عن قصد:
String قيم الترويسات العشوائية. إنها تعرف Authorization: فقط ولا شيء غيره؛ فتمرّ X-API-Key: … كما هي. لهذا وُجدت رموز الترويسات.يبيّن ما لا يفعله redact الحدود الكاملة.
أدلة شاملة ومرجع ونموذج تهديدات: redact.go.phpboyscout.uk. توثيق API مُولَّد وأمثلة قابلة للتشغيل: pkg.go.dev.
انظر LICENSE.