كيفية مراجعة رمز MTS/ASP مشكلة عدم الحصانة CSSI

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

اضغط هنا لرابط المقالة باللغة الانجليزية253121
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
الموجز
توضح هذه المقالة كيفية تحديد تطبيقات Microsoft المعاملات Server/نشط صفحات ملقم (ASP) عرضة المواقع من مشاكل الأمان البرمجة النصية (CSSI) وتصحيحها. يجعل الإدخال الوحيد التحقق من صحة أو تنسيقه غير صحيح عرضة للهجمات التي تتم من التطبيق الخاص بك.
معلومات أخرى
تم وضعها المشكلات CSSI في طريقة معالجة تطبيق التحقق من صحة البيانات و التنسيق بحيث يتم tackled أفضل من طبقة العرض التقديمي.

سوف تتكون هذه الطبقة عادة من صفحات ASP ثم أحيانًا قد يتضمن بعض المكونات التي تساعد في عرض HTML لصفحة ASP لعرض.

في حالة القسم الأخير من المهم ملاحظة أنه على الرغم من أنه يجب على التطبيق تنفيذ عمليات نفس لحماية نفسه من CSSI كتطبيق ASP فقط, تطبيق الفعلية الخاصة به يؤدي إلى بعض بتشغيل في صفحات ASP برمجية التحقق من صحة/التنسيق وبعض في المكون. للحصول على معلومات مفصلة حول CSSI و ASP الرجاء مراجعة مقال معارف التالية:
253119كيفية مراجعة التعليمات البرمجية لـ ASP عن مشكلة عدم الحصانة CSSI
تساعدك الخطوات التالية على التعرف تطبيقات ASP عرضة CSSI وتصحيحها:
  1. ابحث عن ASP أو مكون التعليمة البرمجية التي تنشئ HTML لعرضه. هناك نوعان من السيناريوهات النموذجية:
    • إنشاء المكون وتقوم بإرجاع سلسلة أحرف HTML إلى كتابة ASP مباشرة إلى الاستجابة.
    • المكالمات مكون Response.Write داخليًا لكتابة مباشرة إلى الصفحة. عادة مرجع الكائن استجابة يتم الحصول على ObjectContext عن طريق استدعاء GetObjectContext.Item("Response").
  2. تحديد ما إذا كان يتضمن الإخراج HTML بيانات التطبيق. هذه البيانات يمكن أن تأتي من مصادر مثل قواعد البيانات أو الملفات أو ملفات تعريف الارتباط متنوعة أخرى متغيرات الكائنات وهكذا.
  3. تحديد حل مناسب. الحاجة العثور على ASP أو مكون التعليمة البرمجية التي تنشئ باستخدام HTML بعض إدخال ، يجب عليك تحديد حل مناسب لتطبيق محدد. تتضمن حلول (ولكنها لا تقتصر على) ترميز عليه أو التحقق من صحة/تصفية البيانات غير صالح.

إرشادات التنسيق

ستساعدك هذه الإرشادات في التعرف على مكان معالجة التنسيق بشكل مناسب.

عند كتابة المعلومات إلى صفحة "، يجب أن تكون البيانات تطبيق محدد HTMLEncoded. من المهم عدم إلى HTMLEncode علامات مخصصة للاستخدام ينتهي في صفحة HTML. لذلك، إذا الخاصة بك المكون بإرجاع HTML ، له HTMLEncode يتم إنجازه بداخلها.

أنت بحاجة مرجع إلى كائن الملقم ASP HTMLEncode سلسلة من مكون. يمكنك الحصول على هذا المرجع من مجموعة ObjectContext.Items MTS:
sGoodHTML = GetObjectContext.Item("Server").HTMLEncode(sRawData) 				
مثال: سيقوم بإنشاء التعليمات البرمجية هذا صفوف الجدول مع القيم من مجموعة سجلات. لم هذه التعليمة البرمجية ترميز الإخراج:
Do While Not oRecordset.EOF     sHTML = sHTML & "<TR>"      sHTML = sHTML & "<TD>" & oRecordset("FirstName") & "</TD>"     sHTML = sHTML & "<TD>" & oRecordset("Address") & "</TD>"     sHTML = sHTML & "</TR>" Loop				
عندما يتم إصلاح هذه التعليمة البرمجية لاحظ أن تكون القيم نفسها HTMLEncoded بدلاً من السلسلة HTML بأكملها:
Dim oServer As ASPTypeLibrary.ServerSet oServer = GetObjectContext.Item("Server")Do While Not oRecordset.EOF     sHTML = sHTML & "<TR>"      sHTML = sHTML & "<TD>" & oServer.HTMLEncode( oRecordset("FirstName")) & "</TD>"     sHTML = sHTML & "<TD>" & oServer.HTMLEncode( oRecordset("Address")) & "</TD>"     sHTML = sHTML & "</TR>" LoopSet oServer = Nothing				
الملاحظات استخدام مرجع كائن المتوسطة oServer. هذا تضمين للاستفادة من الربط المبكر تجنب حل البحث ObjectContext.Item في كل مرة. يجب عليك تضمين إعلان كائن كـ ASPTypeLibrary.Server ، مرجع إلى "Microsoft Active Server كائن مكتبة الصفحات."

الرجاء وضع في الاعتبار الإرشادات التالية:
  • يجب استدعاء مكونات العمل لا HTMLEncode (إلا إذا كانت يتم أيضاً عرض HTML). هذا مهمة طبقة العرض التقديمي.
  • بشكل عام، يجب تشغيل مكونات باستخدام HTMLEncode أو أي كائن ASP فعلياً على نفس الكمبيوتر مثل ملقم معلومات إنترنت (IIS).
  • تتضمن حلول (ولكنها لا تقتصر على) التحقق من صحة معلمات الإدخال والتنسيق معلمات إدخال.
مراجع
لمزيد من المعلومات، راجع النصائح التالية من الكمبيوتر الطوارئ استجابة الفريق (CERT) في جامعة Mellon جهاز:لمزيد من المعلومات، انقر فوق أرقام المقالات التالية لعرضها في "قاعدة المعارف لـ Microsoft:
252985كيفية منع مشكلات الأمان البرمجة النصية للمواقع المشتركة تطبيقات ويب
253120كيفية مراجعة InterDev Visual رمز CSSI مشكلة عدم الحصانة التي تم إنشاؤها
253117كيفية منع مشكلة عدم الحصانة Internet Explorer و Outlook Express CSSI

kbCSSI

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 253121 - آخر مراجعة: 01/23/2014 08:09:18 - المراجعة: 2.0

Microsoft Transaction Services 2.0

  • kbnosurvey kbarchive kbmt kbcssi kbhowto KB253121 KbMtar
تعليقات
ERROR: at System.Diagnostics.Process.Kill() at Microsoft.Support.SEOInfrastructureService.PhantomJS.PhantomJSRunner.WaitForExit(Process process, Int32 waitTime, StringBuilder dataBuilder, Boolean isTotalProcessTimeout)