سلسلة محاضرات ASP (العشرون) الحفاظ على أمان تطبيقات ASP
الكاتب:Eve Cole
وقت التحديث:2009-05-30 19:58:35
لا تقلل أبدًا من أهمية تكوين إعدادات الأمان بشكل صحيح. إن تكوين إعدادات الأمان بشكل غير صحيح لا يعرض تطبيقات ASP الخاصة بك للتلاعب غير الضروري فحسب، بل يمنع أيضًا المستخدمين الشرعيين من الوصول إلى ملفات .asp الخاصة بك.
توفر خوادم الويب أساليب مختلفة لحماية تطبيقات ASP الخاصة بك من الوصول غير المصرح به والتلاعب. بعد قراءة معلومات الأمان الموجودة في هذا الموضوع، يرجى تخصيص بعض الوقت لمراجعة وثائق أمان Windows NT وخادم الويب بعناية.
أذونات NTFS يمكنك حماية ملفات تطبيق ASP من خلال تطبيق أذونات الوصول إلى NTFS على الملفات والدلائل الفردية. تعد أذونات NTFS أساس أمان خادم الويب، حيث تحدد مستويات مختلفة من الوصول إلى الملفات والدلائل لمستخدم أو لمجموعة من المستخدمين. عندما يحاول مستخدم لديه حساب Windows NT صالح الوصول إلى ملف بأذونات مقيدة، يتحقق الكمبيوتر من قائمة التحكم بالوصول للملف (ACL). يحدد هذا الجدول الأذونات الممنوحة لمختلف المستخدمين ومجموعات المستخدمين. إذا كان لدى حساب المستخدم إذن لفتح الملف، فإن الكمبيوتر يسمح للمستخدم بالوصول إلى الملف. على سبيل المثال، يحتاج مالك تطبيق ويب على خادم ويب إلى أذونات التغيير لعرض ملفات .asp الخاصة بالتطبيق وتغييرها وحذفها. ومع ذلك، يجب منح المستخدمين العموميين الذين يصلون إلى التطبيق أذونات للقراءة فقط، مما يقتصر على عرض صفحات الويب الخاصة بالتطبيق دون تغييرها.
الحفاظ على أمان Global.asa لحماية تطبيق ASP الخاص بك بشكل كامل، تأكد من تعيين أذونات ملف NTFS على ملف Global.asa الخاص بالتطبيق للمستخدم أو المجموعة المناسبة. إذا كان Global.asa يحتوي على أوامر تقوم بإرجاع معلومات إلى المستعرض ولم تقم بحماية ملف Global.asa، فسيتم إرجاع المعلومات إلى المستعرض حتى لو كانت الملفات الأخرى في التطبيق محمية.
ملاحظة: تأكد من تطبيق أذونات NTFS الموحدة على ملفات التطبيق. على سبيل المثال، إذا قمت عن غير قصد بتقييد أذونات NTFS لملف يحتاج التطبيق إلى احتوائه، فقد لا يتمكن المستخدمون من عرض التطبيق أو تشغيله. لمنع مثل هذه المشكلات، خطط بعناية قبل تعيين أذونات NTFS لتطبيقاتك.
أذونات خادم الويب يمكنك تقييد كيفية عرض كافة المستخدمين لصفحات ASP الخاصة بك وتشغيلها ومعالجتها عن طريق تكوين الأذونات على خادم الويب الخاص بك. على عكس أذونات NTFS، التي توفر طريقة للتحكم في وصول مستخدمين محددين إلى ملفات التطبيق والدلائل، تنطبق أذونات خادم الويب على كافة المستخدمين ولا تفرق بين أنواع حسابات المستخدم.
بالنسبة للمستخدمين الذين سيقومون بتشغيل تطبيقات ASP الخاصة بك، يجب عليك اتباع هذه الإرشادات عند تعيين أذونات خادم الويب:
السماح بأذونات القراءة أو البرنامج النصي على الدليل الظاهري الذي يحتوي على الملف .asp.
السماح بأذونات "القراءة" و"البرنامج النصي" على الدلائل الظاهرية حيث توجد ملفات .asp والملفات الأخرى التي تحتوي على نصوص برمجية (مثل ملفات .htm، وما إلى ذلك).
السماح بأذونات القراءة والتنفيذ على الدلائل الظاهرية التي تحتوي على ملفات .asp والملفات الأخرى التي تتطلب أذونات التنفيذ للتشغيل (مثل ملفات .exe و.dll، وما إلى ذلك).
ملفات تعيين البرنامج النصي يضمن تعيين البرنامج النصي للتطبيق عدم قيام خادم الويب بتنزيل التعليمات البرمجية المصدر لملف .asp بطريق الخطأ. على سبيل المثال، حتى إذا قمت بتعيين أذونات القراءة للدليل الذي يحتوي على ملف .asp، فلن يقوم خادم الويب الخاص بك بإرجاع التعليمات البرمجية المصدر للملف طالما أن الملف .asp ينتمي إلى تطبيق تعيين البرامج النصية للمستخدمين.
أمن ملفات تعريف الارتباط
يستخدم ASP ملف تعريف الارتباط SessionID لتتبع معلومات معينة في مستعرض الويب أثناء زيارة التطبيق أو جلسة العمل. وهذا يعني أن طلبات HTTP مع ملفات تعريف الارتباط المقابلة تعتبر واردة من نفس متصفح الويب. يمكن لخوادم الويب استخدام ملفات تعريف الارتباط SessionID لتكوين تطبيقات ASP بمعلومات الجلسة الخاصة بالمستخدم. على سبيل المثال، إذا كان التطبيق الخاص بك عبارة عن متجر موسيقى عبر الإنترنت يسمح للمستخدمين بتحديد الأقراص المضغوطة وشرائها، فيمكنك استخدام SessionID لتتبع اختيارات المستخدم أثناء تجواله عبر التطبيق.
هل يمكن للمتسللين تخمين SessionID؟
لمنع متسللي الكمبيوتر من تخمين ملف تعريف الارتباط SessionID والوصول إلى متغيرات جلسة المستخدم الشرعية، يقوم خادم الويب بتعيين رقم يتم إنشاؤه عشوائيًا لكل SessionID. عندما يقوم مستعرض الويب الخاص بالمستخدم بإرجاع ملف تعريف ارتباط معرف الجلسة، يقوم الخادم باسترداد معرف الجلسة والرقم المخصص، ثم يتحقق لمعرفة ما إذا كان يطابق الرقم الذي تم إنشاؤه والمخزن على الخادم. إذا تطابق الرقمان، سيتم السماح للمستخدم بالوصول إلى متغير الجلسة. تكمن فعالية هذه التقنية في طول الرقم المخصص (64 بت)، مما يجعل احتمالية تخمين متسلل الكمبيوتر لـ SessionID وسرقة الجلسة النشطة للمستخدم تكاد تكون معدومة.
تشفير ملف تعريف ارتباط SessionID المهم
يمكن لمتسلل الكمبيوتر الذي يعترض ملف تعريف الارتباط sessionID الخاص بالمستخدم استخدام ملف تعريف الارتباط هذا لانتحال شخصية المستخدم. إذا كان تطبيق ASP يحتوي على معلومات خاصة أو أرقام بطاقات ائتمان أو حسابات مصرفية، فيمكن لمتسلل الكمبيوتر الذي لديه ملف تعريف ارتباط مسروق بدء جلسة نشطة في التطبيق والحصول على هذه المعلومات. يمكنك منع اعتراض ملف تعريف الارتباط SessionID عن طريق تشفير رابط الاتصال بين خادم الويب الخاص بك ومتصفح المستخدم.
حماية محتوى ASP المقيد باستخدام آليات المصادقة يمكنك أن تطلب من كل مستخدم يحاول الوصول إلى محتوى ASP المقيد أن يكون لديه اسم مستخدم وكلمة مرور صالحين لحساب Windows NT. كلما حاول مستخدم الوصول إلى المحتوى المقيد، يقوم خادم الويب بإجراء المصادقة أو التحقق من هوية المستخدم للتحقق مما إذا كان لدى المستخدم حساب Windows NT صالح.
يدعم خادم الويب طرق المصادقة التالية:
المصادقة الأساسية تطالب المستخدم بإدخال اسم المستخدم وكلمة المرور.
تحصل مصادقة الطلب/الاستجابة لنظام التشغيل Windows NT بشكل مشفر على معلومات هوية المستخدم من مستعرض الويب الخاص بالمستخدم.
ومع ذلك، يقوم خادم الويب فقط بمصادقة المستخدم إذا كان الوصول المجهول محظورًا أو مقيدًا بواسطة أذونات نظام ملفات Windows NT.
يتطلب تأمين البرامج النصية لقاعدة التعريف ASP التي تصل إلى قاعدة التعريف حقوق المسؤول على الكمبيوتر الذي يعمل عليه خادم الويب. عند تشغيل هذه البرامج النصية من كمبيوتر بعيد، يجب عليك الاتصال عبر اتصال تمت مصادقته، مثل استخدام مصادقة الطلب/الاستجابة لنظام التشغيل Windows NT. يجب عليك إنشاء خادم أو دليل لملف .asp الإداري وتعيين أسلوب مصادقة أمان الدليل الخاص به إلى مصادقة الطلب/الاستجابة لنظام التشغيل Windows NT. حاليًا، يتم دعم مصادقة الطلب/الاستجابة لنظام التشغيل Windows NT فقط من خلال الإصدار 2.0 من Microsoft Internet Explorer أو الإصدار الأحدث.
الحفاظ على أمان التطبيق باستخدام SSL
كميزة أمان لخادم الويب، يوفر بروتوكول طبقة المقابس الآمنة (SSL) 3.0 طريقة افتراضية آمنة وشفافة لإنشاء اتصالات اتصال مشفرة مع المستخدمين. يضمن SSL مصادقة محتوى الويب ويمكنه التأكد بشكل موثوق من هوية المستخدمين الذين يصلون إلى مواقع الويب المحظورة.
باستخدام SSL، يمكنك مطالبة المستخدمين الذين يحاولون الوصول إلى تطبيقات ASP المقيدة بإنشاء اتصال مشفر مع الخادم الخاص بك؛ وهذا يمنع اعتراض المعلومات المهمة المتبادلة بين المستخدمين والتطبيقات.
الحفاظ على أمان الملفات المضمنة إذا قمت بتضمين ملفات موجودة في دليل ممكّن لـ SSL من ملف .asp الموجود في دليل جذر ظاهري غير محمي، فلن يتم تطبيق SSL على الملفات المضمنة. ولذلك، للتأكد من تطبيق SSL، تأكد من وجود كل من الملفات المضمنة والمضمنة في دليل مُمكّن لـ SSL.
مصادقة العميل إحدى الطرق الآمنة للغاية للتحكم في الوصول إلى تطبيق ASP الخاص بك هي مطالبة المستخدمين بتسجيل الدخول باستخدام مصادقة العميل. بيانات اعتماد العميل هي بطاقة هوية رقمية تحتوي على معلومات هوية المستخدم وتعمل بنفس الطريقة التي يعمل بها الشكل التقليدي لتحديد الهوية مثل جواز السفر أو رخصة القيادة. عادةً ما يحصل المستخدمون على مؤهلات العميل من مؤسسة خارجية موثوقة، والتي تؤكد معلومات هوية المستخدم قبل إصدار شهادات التأهيل. (عادةً، تطلب هذه المنظمات الاسم والعنوان ورقم الهاتف واسم المؤسسة؛ ويختلف مستوى التفاصيل في هذه المعلومات وفقًا لمستوى الحالة المقدمة.)
عندما يحاول مستخدم تسجيل الدخول إلى تطبيق يتطلب التحقق من الأهلية، يرسل متصفح الويب الخاص بالمستخدم تلقائيًا بيانات اعتماد المستخدم إلى الخادم. إذا تم تكوين ميزة تعيين مؤهل طبقة مآخذ التوصيل الآمنة (SSL) الخاصة بخادم الويب بشكل صحيح، فيمكن للخادم التحقق من هوية المستخدم قبل منح الوصول إلى تطبيق ASP.
برامج ASP النصية للتعامل مع شهادة التأهيل باعتبارك مطور تطبيقات ASP، يمكنك كتابة برامج نصية للتحقق من وجود مؤهل وقراءة حقول التأهيل. على سبيل المثال، يمكنك الوصول إلى حقل اسم المستخدم وحقل اسم الشركة من المؤهل. تقوم صفحات الخادم النشطة بتخزين معلومات التأهيل في مجموعة ClientCertificate الخاصة بكائن الطلب.
يجب تكوين خادم الويب لقبول مؤهلات العميل أو طلبها قبل أن تتم معالجتها من خلال ASP؛ وإلا فستكون مجموعة ClientCertificate فارغة.