IIS مقابل.ترخيص ASP.NET - أسهل طريقة لتأمين الملفات الثابتة؟

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

  •  06-07-2019
  •  | 
  •  

سؤال

لنفترض أن لدي ما يلي في web.config:

<allow roles="Developers" />
<deny users="*"/>

يؤدي هذا إلى تأمين الوصول إلى أنواع ملفات .aspx و.asmx وأنواع ملفات .NET الأخرى، ولكنه لا يزال يسمح للمستخدمين غير المصرح لهم بفتح ملفات ثابتة مثل image.jpg.أتفهم سبب عدم مطالبة web.config بمعلومات الترخيص عندما يطلب شخص ما image.jpg (إنه ليس من نوع .NET، ويمكن لـ IIS تجاوزه)، ولكن كيف يمكنني تأمين تطبيق كامل؟

تتضمن النصائح التي وجدتها عبر الإنترنت ما يلي:

  • إنشاء <location> إدخال الدليل المعني وسيقوم IIS / .NET باستلامه.(لا يبدو أن ذلك.)
  • تحتاج إلى كتابة مرشح ISAPI الخاص بك وتعيين كافة امتدادات الملفات الحساسة لذلك.
  • لا تحتاج إلى كتابة مرشح ISAPI الخاص بك - فقط قم بتعيين الامتدادات إلى aspnet_isapi.dll للقيام بذلك.
  • لا تحتاج إلى تعديل IIS على الإطلاق، فقط قم بإنشاء إدخال httpHandler في web.config لملحقاتك.(أفضل حقًا عدم محاولة القيام بذلك لكل ملحق في التطبيق.)

لا شيء من هذا يعمل بالسهولة التي أتذكرها في Apache.ما هو أبسط شيء يمكن أن يعمل على مطالبة الزائر بكلمة مرور وعدم تقديم أي ملفات (ثابتة أو غير ثابتة) لأي مستخدم لا يملكها؟

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

المحلول

يُمكَِن تعيين البطاقة البرية لـ IIS 6.سيؤدي هذا إلى إرسال جميع الملفات عبر خط أنابيب ASP.NET، مما يضمن حدوث مصادقة النموذج لجميع الملفات.سوف يؤدي إلى تدهور الأداء (لا أعرف كم).

بالنسبة إلى IIS 5، قم بالترقية إلى IIS 6.

قمت بإدراج 4 أفكار:

  • الموقع يعمل فقط إذا كان لديك تعيين للحرف البدل (أو تم تعيين امتدادات محددة).

  • من يريد أن يكتب مرشح ISAPI؟لا يمكنك القيام بذلك بسهولة باللغات المُدارة إلا إذا كان لديك IIS7.ومن يريد أن يكتب مرشح ISAPI C++؟

  • يعمل تعيين Wild Card مع التحذير أعلاه (الأداء)

  • مرة أخرى، لن يعمل الخيار الأخير دون تسجيل هذه الملحقات المحددة في IIS وتوجيهها عبر aspnet.

نصائح أخرى

هناك طريقة بسيطة ورائعة تتمثل في الترقية إلى IIS 7 - حيث أصبح لديه الآن مسار متكامل.

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