الأشياء التي يجب وضعها في الاعتبار عند تطوير صفحات الويب باستخدام ASP يمكن للأصدقاء الذين يستخدمون ASP إلقاء نظرة على الخطوات.
1. لا تثق أبدًا في أن إدخال المستخدم بالحجم المناسب أو أنه يحتوي على الأحرف المناسبة. يجب دائمًا التحقق من صحة مدخلات المستخدم قبل استخدامها لاتخاذ القرارات. أفضل خيار لديك هو إنشاء مكون COM+ الذي يمكنك الاتصال به من صفحة ASP للتحقق من صحة إدخال المستخدم. يمكنك أيضًا استخدام الأسلوب Server.HTMLEncode، أو الأسلوب Server.URLEncode، أو أحد نماذج التعليمات البرمجية الموجودة في أسفل هذه الصفحة.
2. لا تقم بإنشاء سلسلة اتصال قاعدة البيانات في صفحة ASP عن طريق تسلسل السلسلة التي أدخلها المستخدم. يمكن للمستخدمين الضارين الوصول إلى قاعدة البيانات عن طريق إدخال التعليمات البرمجية في مدخلاتهم. إذا كنت تستخدم قاعدة بيانات SQL، فاستخدم إجراءً مخزنًا لإنشاء سلسلة اتصال قاعدة البيانات.
3. لا تستخدم اسم حساب مسؤول SQL الافتراضي sa. يعرف كل من يستخدم SQL أن حساب sa موجود. قم بإنشاء حساب إدارة SQL آخر بكلمة مرور آمنة ومأمونة، ثم احذف حساب sa.
4. قبل تخزين كلمات مرور مستخدم العميل، يرجى استخدام خوارزمية التجزئة أو تشفير base64 أو استخدام Server.HTMLEncode أو Server.URLEncode لتشفير كلمات المرور هذه. يمكنك أيضًا استخدام أحد نماذج التعليمات البرمجية الموجودة أسفل هذه الصفحة للتحقق من الأحرف الموجودة في سر العميل.
5. لا تضع أسماء حسابات إدارية أو كلمات مرور في البرامج النصية الإدارية أو صفحات ASP.
6. لا تتخذ قرارات في التعليمات البرمجية الخاصة بك بناءً على رؤوس الطلب، حيث يمكن للمستخدمين الضارين تزوير بيانات الرأس. قم دائمًا بتشفير بيانات الطلب قبل استخدامها أو التحقق من الأحرف التي تحتوي عليها باستخدام مثال الكود أدناه.
7. لا تقم بتخزين بيانات الأمان في ملفات تعريف الارتباط أو إخفاء حقول الإدخال في صفحات الويب.
استخدم دائمًا طبقة المقابس الآمنة (SSL) مع التطبيقات المستندة إلى الجلسة لتجنب مخاطر إرسال ملفات تعريف الارتباط الخاصة بالجلسة دون تشفيرها. إذا لم يتم تشفير ملف تعريف ارتباط الجلسة، فيمكن لمستخدم ضار استخدام ملف تعريف ارتباط الجلسة في أحد التطبيقات للوصول إلى تطبيق آخر في نفس العملية.
8. عند كتابة تطبيقات ISAPI أو عوامل التصفية أو كائنات COM+، يرجى الانتباه إلى تجاوز سعة المخزن المؤقت بسبب حجم المتغيرات والبيانات. انتبه أيضًا إلى مشكلات التحديد الأساسي التي قد تنجم عن التفسير، مثل تفسير أسماء المسارات المطلقة كأسماء مسارات أو عناوين URL نسبية.
9. عند تبديل تطبيق ASP الذي يعمل في منطقة ذات ترابط واحد (STA) إلى منطقة ذات مؤشرات ترابط متعددة (MTA)، سيصبح رمز الانتحال مميزًا قديمًا. قد يتسبب هذا في تشغيل التطبيق دون انتحال الهوية، مما يسمح له بالعمل بشكل فعال بهوية العملية التي قد تسمح بالوصول إلى موارد أخرى. إذا كان يجب عليك تبديل نماذج الترابط، فقم بتعطيل التطبيق وإلغاء تثبيته قبل إجراء التغيير.
مثال التعليمات البرمجية
يحتوي مثال التعليمات البرمجية هذا على دالة تقوم بإزالة الأحرف التي قد تكون ضارة من سلسلة مرسلة إلى الدالة. في كلا المثالين أعلاه، حدد صفحة الرموز لضمان التشفير الصحيح. يستخدم المثال التالي Microsoft Visual Basic® Scripting Edition (VBScript):
<%@ LANGUAGE=VBScript %> <% صفحة الاستجابة = 1252 Response.Write(Hello, & RemoveBadCharacters(Request.Form(UserName))) Response.Write(<BR>لهذا السبب تلقيت خطأ :) الدالة RemoveBadCharacters(strTemp) خافت regEx قم بتعيين regEx = New RegExp regEx.Pattern = [^/s/w] regEx.Global = صحيح RemoveBadCharacters = regEx.Replace(strTemp, ) وظيفة النهاية %> |
يستخدم المثال التالي Microsoft JScript®:
<%@ LANGUAGE=JScript %> <% صفحة الاستجابة = 1252; Response.Write(Hello, + RemoveBadCharacters(Request.Form(UserName))); Response.Write(<BR>لهذا السبب تلقيت خطأ:); وظيفة RemoveBadCharacters(strTemp) { strTemp = strTemp.replace(/[^/s/w]/g,); إرجاع strTemp؛ } %> |