Jenkins / الأدلة والمشاركة والسلطة / الدرس 9
ربط الاعتماد ونطاقه وحدود الإخفاء
اكشف الاعتماد للعملية الموثوقة المحتاجة فقط دون الاتكال على مظهر السجل.
في هذه الصفحة
أهداف الدرس
- مراجعة المعرف ونطاق التخزين وعمر الربط.
- شرح قصور الإخفاء أمام شيفرة مهمة خبيثة.
معرف الاعتماد ليس قيمته السرية
يمكن الإشارة للاعتماد بمعرف وربطه بآلية مدعومة. يختار المعرف مادة مخزنة وفق النطاق والأذونات ولا يثبت استحقاق المهمة للسلطة. lab-token-id اسم افتراضي بلا اعتماد فعلي. ضع الاعتماد بنطاق مناسب وراجع من يعدل المهمة والمكتبة المستهلكة. يستطيع من يتحكم بالمحتوى التنفيذي داخل الربط استخدام السر أو كشفه غالباً، حتى إن لم تعرض الواجهة قيمته. لا تجعل تقييد زر قراءة الاعتماد بديلاً عن تقييد كاتب النص الذي سيستلم قدرته في عملية تنفيذ فعلية.
ضيّق عمر الربط
تقصر withCredentials ربطاً مدعوماً على جسم، كإتاحة نص سري بمتغير. اربط حول العملية الموثوقة المحتاجة لا رسم الاختبارات كله. لا يحوي المثال رمزاً ولا يجري فعلاً موثقاً. يثبت نص الصدفة ويتجنب إحلال Groovy للمحتوى السري. يجب للمساعد الحقيقي أيضاً ألا يسجل القيمة أو يغلفها، وأن يكون تنفيذه واعتماده موثوقين قبل استلام البيئة. لا يثبت set +x سرية عامة؛ يخفض تتبع أوامر صدفة معينة فقط، ويبقى ما يطبعه البرنامج نفسه وقنواته الخارجية موضوع مراجعة مستقلة.
withCredentials([string(credentialsId: "lab-token-id", variable: "PARCEL_TOKEN")]) {
sh 'set +x\npython trusted_fixture_check.py'
}
الاسم والمساعد والعقدة والإضافة متطلبات غائبة مفترضة. يقلل set +x التتبع ولا يضمن السرية. لا يُجلب اعتماد أو يستخدم هنا.
الإخفاء مساعدة عرض
تحاول Jenkins وآليات الربط إخفاء أشكال معروفة في السجل بحدود موثقة. تستطيع الشيفرة الخبيثة التحويل والتجزئة والإرسال أو الاستخدام المباشر. وقد تؤثر عمليات بهوية نظام مشتركة في السرية بحسب العزل. لا تشغّل غير الموثوق إلى جانب ربط حساس مع افتراض أن المستخدم المشترك حد أمان. لا يلغي حذف سطر قيمة منسوخة؛ يتولى المالك التدوير والتحقيق بالمسار المعتمد. يختلف منع التعرض وتقليل صلاحيته واكتشاف استعماله، ولا يمكن لقناع عرض واحد الوفاء بهذه الأدوار كلها.
لملف السر نطاق ملفات أيضاً
قد ينشئ ربط الملف مادة مؤقتة بموقع يعتمد على سياق الربط والمجلد. قد يجعل تداخل غير مناسب ملفاً حساساً ضمن مسار عمل قابل للتصفح. راجع الأنماط الآمنة الموثقة للإضافة ولا تختلق مساراً. استبعد المادة من الأرشيف وstash ولا تدع المساعد ينسخها لحزمة أو تقرير. افصل عمر السر المؤقت واحتفاظ الدليل. لا يزيل تنظيف المجلد أرشيفاً تسرب ولا يبطل اعتماداً خارجياً. ينبغي لمراجعة الربط تتبع كل نسخة ممكنة من الملف، لا موقعه الأصلي فقط.
اشترط الثقة والغرض الضيق معاً
يفحص النموذج الكامل ثقة مهمة افتراضية وسماحها بطلب قدرة معلنة. لا يربط أو يفك أو يفحص أو يصادق اعتماداً. يظهر ضرورة ثقة الشيفرة ضمن القرار بدلاً من الاعتماد على الاسم فقط. يحتاج الواقع سياقاً موثقاً ونطاق تخزين وعزل عامل وعمر حاجة وأذونات هدف ضيقة. تخفض هذه ضروباً مختلفة من الخطر ولا يعوضها إعداد إخفاء واحد. لا تعني true في النموذج منح قدرة أو إثبات أن المساعد خالٍ من الخطر؛ إنها نتيجة شروط معلنة في الذاكرة.
allowed_tasks = {"trusted-publication"}
def may_bind(task, trusted_code):
return task in allowed_tasks and trusted_code
print(may_bind("proposal-test", False))
print(may_bind("trusted-publication", False))
print(may_bind("trusted-publication", True))
False
False
True
يحوي البرنامج أسماء وقيماً منطقية فقط ولا يقرأ بيئة أو ملفاً أو مخزن اعتماد أو API ولا يمنح قدرة.
الأخطاء الشائعة وإصلاحها
يُعد الإخفاء دليلاً على تعذر سرقة الاعتماد.
- لماذا يحدث؟
- اختلط عرض السجل بسلطة الشيفرة والسرية.
- كيف تصلحه؟
- قيد الثقة والنطاق والعزل وأذونات الهدف.
- كيف تتجنب تكراره؟
- عامل القناع طبقة عرض محدودة.
يُحفظ ملف مربوط ضمن أرشيف شامل.
- لماذا يحدث؟
- لم يراجع الموضع واختيار الدليل معاً.
- كيف تصلحه؟
- أزل التعرض ونسق استجابة المالك.
- كيف تتجنب تكراره؟
- راجع مسارات الربط والأنماط قبل الاستخدام.
يحيط الربط بخطافات تثبيت مساهم.
- لماذا يحدث؟
- ضم الحد الموثوق مدخلات تنفيذية غير موثوقة.
- كيف تصلحه؟
- افصل التحقق عن الاستخدام الضيق للاعتماد.
- كيف تتجنب تكراره؟
- تتبع المصدر والمكتبة والاعتماد والمساعد داخل الربط.
اختبر فهمك
1. يعدل الكاتب جسم withCredentials ولا يرى السر في الواجهة. هل يُحمى منه؟
اعرض الحل المشروح
لا تكفي قيود الواجهة. يمكن للنص استخدام السر أو كشفه بقناة أخرى. راجع سلطة تعديل المهمة والمكتبة كوصول للقدرة المربوطة مع نطاق ضيق وتنفيذ موثوق.
2. هل يمنع set +x كتابة المساعد الرمز في ناتج؟
اعرض الحل المشروح
لا. يضبط تتبع الصدفة لا سلوك المساعد أو اختيار الملفات. راجع المساعد واعتماده والمحفوظ. لا تعوض الأقنعة والتتبع إلغاء المالك أو تدويره عند التعرض.
أهم ما تعلمته
- يمنح الربط قدرة للشيفرة المنفذة.
- راجع التخزين والعمر والملف والسجل والهدف معاً.