لماذا يزور دور ويب أزور افتراضيا في الثقة الكاملة؟

StackOverflow https://stackoverflow.com/questions/2037747

  •  19-09-2019
  •  | 
  •  

سؤال

عندما أقوم بإنشاء تطبيق Azure ASP.NET، من خلال مستوى الثقة الافتراضي هو الثقة الكاملة. أنا دائما تغييره إلى ثقة Windows Azure الجزئي التي تشبه مستوى الثقة المتوسطة ASP.NET.

يمكنك أن تفعل ذلك إما باستخدام واجهة المستخدم الرسومية عند تحديد خصائص على الدور أو عن طريق إعداد enableNativeCoDeExection إلى False في ملف تعريف (.csdef) تماما مثل أدناه:

<WebRole name="ServiceRuntimeWebsite" enableNativeCodeExecution="false">

كطور أمن واعي أريد افتراضيا لتشغيل طلبي في وضع الثقة الجزئي يوفر مستوى أعلى من الأمان. إذا كنت بحاجة إلى استخدام شيء مثل انعكاس أو ص / استدعاء، كمطور أريد اتخاذ القرار لخفض مستوى الثقة بنفسي.

أنا متأكد من أنه هناك سبب لعدم قررت Microsoft استخدام الثقة الكاملة على أنه مستوى ثقة .NET افتراضي، أفشل فقط في رؤيته. إذا كنت تعرف السبب، أو تعتقد أنك تعرف ذلك، واسمحوا لي أن أعرف.

هل كانت مفيدة؟

المحلول

الثقة الكاملة ليست مطلوبة فقط ل P / Invoke for .NET انعكاس أيضا. كأجيل القول السفلي، تحتاج جميع التطبيقات تقريبا الحجم المعتدلة إلى الثقة الكاملة لأن جميع المكتبات الواسعة النطاق تحتاج إليها أيضا (أحمق على سبيل المثال). في الواقع، لقد كنت أسأل من السؤال المعاكس المحدد على منتديات أزور أيضا.

نصائح أخرى

تتعلق مسألة الثقة الكاملة أو الجزئية بالبيئة التي يعمل فيها طلبك. كلما زاد التحكم و / أو "ملكية" البيئة والجمعيات لديك، والمجرد أن يكون لديك إعدادات ثقة كاملة.

على سبيل المثال، إذا قمت بإنشاء موقع ويب Azure (قدرة ويب Azure (يوليو 2012)، ويحطم موقع الويب الخاص بك، فإن موقع الويب الخاص بك يسمح بتنزيل موصلات التجميع التعسفي وتثبيتها، فمن المهم أن يكون لديك بيئة موثوق بها جزئيا. من الممكن أن يتم تنزيل واحدة من الإضافات وتنفيذها، والتي لا تتحكم بها أو تملكها، تحتوي على برامج ضارة. لا يؤثر ذلك فقط على أمن واستقرار موقع الويب الخاص بك، ولكن قد يجادل البعض أنه يؤثر على مواقع الويب الأخرى (متعددة المستأجرة) التي لا تزال لها علاقة بك.

بالتأكيد سوف يعتمد موقع الويب الخاص بك على مكتبات الأحزاب الثالثة، مثل LOG4NET أو Instructuremap، لكن تلك مكتبات معروفة للغاية ومكانية فخارية غير المعنية فيما يتعلق بتأثير أمنها. Ergo، إذا كنت تقوم بتشغيل دور على شبكة الإنترنت Azure (قضية نوع "متعدد المستأجرات" أقل بكثير) وأنت مجرد تشغيل مثل تطبيقات الطرف الثالث "الموثوق بها"، فهناك حقا ليست مشكلة تتمتع بالمرور الكامل.

نعم، لسوء الحظ، لا يزال من الصعب للغاية (إن لم يكن مستحيلا) كتابة تطبيقات .NET كبيرة تعمل في ثقة جزئية.

نحن بحاجة إلى تقنية وأدوات أفضل بكثير (مثل CAS.NET)

لأن الثقة المتوسطة أصبحت الآن رسميا رسميا. إذا قمت ببدء تشغيل مشروع ويب جديد في Visual Studio، فإنه يتطلب بالفعل الثقة الكاملة (ولا يعمل ثقة جزئية). تقول Microsoft: لا تعتمد على الثقة المتوسطة، بدلا من ذلك، استخدم الثقة الكاملة وعزل التطبيقات غير الموثوق بها في تجمعات تطبيقات منفصلة.

مصادر:

إجابة Stackoverflow: فريق asp.net

مايكروسوفت: ASP.NET الثقة الجزئية لا تضمن عزل التطبيق

Microsoft: ASP.NET تطوير الويب أفضل الممارسات

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top