sk-… أُسقِط في حقل command، رقم ضمان اجتماعي لعميل
لُصِق في body، رمز داخلي في ترويسة طلب. حكم sanitize في جدار الحماية
يصطاد تلك المادة في وسائط استدعاء الأداة، يستبدلها برمز تنقيح مكتوب، ويعيد
توجيه الاستدعاء المنظَّف — فيظل الإجراء يعمل، لكن السر لا يغادر البوابة أبداً.
هذا حكم واحد في لغة مطابقة جدار الحماية. للمجموعة الكاملة انظر
الأحكام ومرجع القواعد؛
هذه الصفحة هي الدليل المركّز لتأليف sanitize والتفكير فيه.
1. ماذا يفعل sanitize — وما لا يلمسه أبداً
قاعدة بـverdict: sanitize تجري محرك تنقيح على وسائط استدعاء الأداة قبل
إرسال الاستدعاء. تُستبدل كل مطابقة برمز نمطي ويمضي الاستدعاء بالوسائط المنظَّفة
— لا تزال الأداة تُنفَّذ، فقط دون السر الخام فيها.
ينقّح
وسائط JSON لـ
tool_call مُصدَر من النموذج أو tools/call لـ MCP —
command، body، headers، أي حقل سلسلة هبط فيه سر أو PII.لا ينقّح أبداً
المحتوى الذي تعيده أداة، المطالبة، نص استجابة النموذج. sanitize مُنقّح
للوسائط فقط. فحص النص شأن حاجز حماية.
[redacted:<preset>] (مثل [redacted:openai_key])، ومطابقة نمط مخصص تصبح
[redacted:custom]. شكل الوسيطة محفوظ — تتغيّر السلسلة الفرعية الحساسة فقط —
فأداة تتوقّع JSON صالحاً لا تزال تتلقّى JSON صالحاً.
2. الإعدادات المسبقة المدمجة للكاشف
قاعدة sanitize تسمّي إعداداً مسبقاً واحداً أو أكثر (أشكال أسرار/PII معروفة) و/أو أنماط regex مخصصة. الإعدادات المسبقة المدمجة:| الإعداد المسبق | يصطاد |
|---|---|
aws_access_key | معرّف مفتاح وصول AWS (AKIA… / ASIA… + 16 حرفاً) |
aws_secret_key | سر AWS بطول 40 حرفاً (واعٍ بالحدود) |
openai_key | sk- + ≥32 حرفاً |
anthropic_key | sk-ant- + ≥40 حرفاً |
bearer_token | Bearer + رمز بطول ≥16 حرفاً (الكلمة المفتاحية محفوظة) |
email | عنوان بريد إلكتروني |
ssn_us | رقم ضمان اجتماعي أمريكي بصيغة 3-2-4 |
credit_card | سلسلة 13–19 رقماً تجتاز فحص Luhn |
يجب أن تعلن قاعدة sanitize عن إعداد مسبق واحد على الأقل أو نمط مخصص —
مُطهّر فارغ يُرفض عند حفظ القاعدة. مطابقة
credit_card تُفحَص إضافياً بـ Luhn،
فرقم بنفس الطول ليس بطاقة صالحة يُترَك دون مساس بدلاً من المبالغة في تنقيحه.3. مثال ملموس واحد
ألّف هذا في محرر القواعد بوحدة التحكم. المثال ينقّح مفتاح OpenAI وأي بريد إلكتروني من وسائط أي استدعاء أداةhttp.* يصدره وكيلك، ثم يعيد توجيه الاستدعاء
المنظَّف:
key=[redacted:openai_key] user=[redacted:email] — لا يزال الطلب يعمل، والسر
والعنوان لا يغادران البوابة أبداً.
4. على سطح inbound، يتصاعد sanitize إلى deny
سطحinbound يقيّم الأدوات التي يعلن عنها
وكيل على طلب — تعريفات الأدوات، التي لا تحمل وسائط استدعاء بعد. لا شيء
لتنقيحه هناك، فحكم sanitize على سطح inbound يتصاعد إلى deny (فشل
مغلق): يُحجب الطلب بـ firewall_blocked بدلاً من إعادة توجيهه غير منقَّح.
5. sanitize مقابل الطرق الأخرى للتعامل مع سر
ثلاث طبقات يمكنها التصرف بناءً على سر يوشك وكيل على تسريبه — اختر حسب ماذا وأين:Sanitize (جدار الحماية) — نقّح وسائط استدعاء الأداة
Sanitize (جدار الحماية) — نقّح وسائط استدعاء الأداة
يجرّد السر من وسائط استدعاء أداة ويظل يشغّل الاستدعاء. استخدمه عندما
يكون الإجراء مشروعاً لكن الوكيل وضع شيئاً حساساً في حقل. مستوى الوسيطة فقط.
Deny (جدار الحماية) — احجب الاستدعاء كله
Deny (جدار الحماية) — احجب الاستدعاء كله
يوقف الاستدعاء بالكامل. استخدمه عندما يكون الإجراء نفسه خطراً، وليس مجرد
وسيطة. هذا أيضاً ما يصبح sanitize عليه على سطح inbound. انظر
حجب الأدوات.
حواجز الحماية — افحص نص المطالبة / الاستجابة
حواجز الحماية — افحص نص المطالبة / الاستجابة
Secrets Blocker وحواجز PII
تفحص نص طلب أو استجابة (بما في ذلك، على مرحلة المخرجات، المحتوى المولَّد
من النموذج). تلك هي الطبقة لـ “ما تعيده أداة أو نموذج” — الشيء الذي لا
يفعله sanitize.
6. أين يظهر sanitize في أثرك
كأي حكم، يُسجَّل تقييم sanitize كحدث جدار حماية — قابل للتصفية حسب الحكم والسطح والأداة والتشغيل في سجل الأحداث ومجمَّع في التحليلات. في وضع الظل يُخفَّض حكم sanitize (كأي حكم فارض) إلىaudit ويُسبَق السبب بـ [shadow] would …، فيمكنك قياس الأثر قبل
أن تُعاد كتابة أي وسيطة فعلاً.
أين تذهب بعد ذلك
كل الأحكام
allow، audit، deny، sanitize، pending_approval، cap_cost.
التحقق من الوسائط
طابق استدعاءً بما في وسائطه — قواعد عبارة JSONPath.
حجب الأدوات
عندما يكون الإجراء نفسه هو المشكلة، ارفض الاستدعاء كله.
جدار الحماية + حواجز الحماية
افحص النص الذي تعيده أداة أو نموذج — الطبقة التي لا يغطّيها sanitize.
