استخدام المكتبات من التعليمات البرمجية الموثوق بها جزئياً
ملاحظة |
---|
هذه صورة إلى يعالج سلوك تجميعات باسم واضح ويطبق فقط إلى تجميعات المستوى 1 أو تجميعات التي تستخدم نهج الأمان قديم.التعليمات البرمجية الشفافة أمنياً، المستوى 2تجميعات في.NET Framework الإصدار 4أو لاحقاً لا تتأثر بأسماء قوية.للحصول على مزيد من المعلومات حول تغييرات نظام الأمان، راجع تغييرات الأمان في .NET Framework 4. |
التطبيقات التي تتلقى ثقة أقل من كاملة من نظام أمان الوصول إلى التعليمات البرمجية الخاص ببيئة وقت التشغيل لا يُسمح لها بطلب استدعاء مكتبات مُشاركة و مُدارة إلا إذا سمح لهم بذلك كاتب المكتبة بشكل محدد و ذلك من خلال استخدام الفئة AllowPartiallyTrustedCallersAttribute. و لذلك، يجب أن يكون كاتبو التطبيقات على علم بأن بعض المكتبات لن تتوفر لهم من السياق الموثوق به جزئيًا. و بشكل افتراضي، كافة التعليمات البرمجية التي تُنفّذ من منطقة شبكة الإنترانت المحلية أو منطقة الإنترنت تُعد موثوقاً بها جزئياً. إذا كنت لا تتوقع تنفيذ التعليمات البرمجية الخاصة بك من سياق موثوق به جزئيًا أو لا تتوقع أن يتم استدعاؤها بواسطة تعليمات برمجية موثوق بها جزئيًا، فلن تحتاج أن تقلق حول المعلومات في هذا القسم. ومع ذلك، إذا قمت بكتابة تعليمات برمجية يجب أن تتفاعل مع تعليمات برمجية موثوق بها جزئياً أو تعمل ضمن سياق موثوق به جزئيًا، يجب عليك الأخذ في الاعتبار العوامل التالية:
يجب توقيع المكتبات بأسماء قوية و ذلك لمشاركتها بواسطة تطبيقات متعددة. تسمح الأسماء القوية بوضع التعليمات البرمجية الخاصة بك في مخزن التجميع العمومي المؤقت وتسمح للمستهلكين بالتحقق من أن جزء معين من التعليمات البرمجية المتنقلة تنشأ منك فعلياً.
و بشكل افتراضي، تقوم المكتبات المُشاركة و القوية المسمى بتنفيذ LinkDemand ضمني للثقة الكاملة تلقائيًا، دون الحاجة إلى القيام بأي شيء بواسطة كاتب المكتبة.
و إذا لم يكن لدى طالب الاستدعاء الثقة الكاملة ولكن مع ذلك يحاول استدعاء تلك المكتبة، تطرح بيئة وقت التشغيل SecurityException ولا يُسمح لطالب الاستدعاء بالارتباط مع المكتبة.
و لكي تتمكن من تعطيل LinkDemand التلقائي و منع طرح الاستثناء، يمكنك وضع السمة AllowPartiallyTrustedCallersAttribute على نطاق التجميع للمكتبة المُشاركة. و تسمح هذه السمة للمكتبات الخاصة بك بأن يتم استدعاؤها من تعليمات برمجية مُدارة موثوق بها جزئيًا.
التعليمات البرمجية الموثوق بها جزئياً و التي تم منحها حق الوصول إلى مكتبة ما باستخدام هذه السمة لا تزال عرضة للقيود الإضافية المعرّفة من قِبل سياسة الجهاز المحلية.
تُوجد طريقة برمجية للحصول على تعليمات برمجية موثوق بها جزئيًا لطلب استدعاء مكتبة لا تملك السمة AllowPartiallyTrustedCallersAttribute. إذا كان التطبيق لا يتلقى الثقة الكاملة بشكل افتراضي، فعلى المسؤول اختيار تعديل سياسة الأمان و منح الثقة الكاملة للتطبيق قبل أن يتمكن التطبيق من استدعاء مكتبة مثل تلك.
المكتبات الخاصة بتطبيق معين لا تتطلب اسماً قوياً و لا تتطلب السمة AllowPartiallyTrustedCallersAttribute و لا يمكن الإشارة إليها بواسطة تعليمات برمجية فد تكون ضارة من خارج التطبيق. تتم حماية مثل هذه التعليمات البرمجية ضد إساءة الاستخدام المقصودة أو غير المقصودة بواسطة التعليمات البرمجية المتنقلة و الموثوق بها جزئياً بدون أن يحتاج المطوّر أو المسؤول إلى القيام بأي شيء إضافي.
يجب عليك الأخذ في الاعتبار عملية تمكين الاستخدام بواسطة تعليمات برمجية موثوق بها جزئياً بشكل صريح للأنواع التالية من التعليمات البرمجية:
التعليمات البرمجية التي تم اختبارها بشدة لفحص مشاكل عدم حصانة الأمان و التي تُعد متوافقة مع الإرشادات الموضحة في إرشادات كتابة التعليمات البرمجية الأمنة.
مكتبات التعليمات البرمجية القوية المسمى و التي تمت كتابتها خِصيصاً للسيناريوهات الموثوق بها جزئياً.
أية مكونات (سواء كان موثوقاً بها جزئيًا أو كلياُ) قد تم توقيعها بالأسماء القوية و التي سيتم استدعاؤها بواسطة التعليمات البرمجية المتنقلة التي تم تنزيلها من الإنترنت أو الإنترانت المحلية. تتأثر هذه المكونات لأن ضمن السياسة الافتراضية تحصل التعليمات البرمجية المتنقلة على الثقة الجزئية.
إذا تم تعديل السياسة الافتراضية، أية تعليمات برمجية تمنحها السياسة الافتراضبة ثقة أقل من الثقة الكاملة.
ملاحظة بعض الفئات التي تأتي مع مكتبة فئات .NET Framework لا تحتوي على السمة AllowPartiallyTrustedCallersAttribute و لا يمكن استدعاؤها بواسطة تعليمات برمجية موثوق بها جزئياً.راجع تجميعات .NET Framework المحددة بالعلامة AllowPartiallyTrustedCallersAttribute للحصول على قائمة بالفئات التي يمكن طلب استدعاؤها بواسطة تعليمات برمجية موثوق بها جزئيًا.