إخراج SSI يختفي بعد يمكنك تطبيق تصحيحات الأمان

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

318176
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
نوصي بشدة لكافة المستخدمين الترقية إلى Microsoft خدمات معلومات إنترنت (IIS) الإصدار 7.0 تشغيل Microsoft Windows Server 2008. IIS 7.0 زيادة أمان البنية التحتية ويب بشكل ملحوظ. لمزيد من المعلومات حول المواضيع ذات الصلة بالأمان IIS قم بزيارة موقع Microsoft التالي على الويب:لمزيد من المعلومات حول IIS 7.0 قم بزيارة موقع Microsoft التالي على الويب:
الأعراض
تنفيذ برنامج التضمين من جانب الملقم (SSI) باستخدام <!----> #exec cgi تطبيق الأمر على خادم يقوم بتشغيل إما Microsoft Windows NT 4.0 مع Service Pack 4 (SP4) أو الإصدار الأحدث أو تطبيق Microsoft Windows 2000 مع Service Pack 2 (SP2) أو الإصدار الأحدث إخراج البرنامج لا يظهر على الصفحة. إذا قمت بتشغيل البرنامج نفسه على ملقم unpatched يظهر الإخراج كما هو متوقع.
السبب
بعد تثبيت حزم الخدمة المحددة هذه خدمات معلومات إنترنت (IIS) يتوقع أي برنامج SSI التي تم تنفيذها باستخدام <!----> #exec cgi الأمر أن تتبع مواصفات واجهة العبّارة الشائعة (CGI). تتطلب هذه المواصفات برامج CGI لطباعة رأس HTTP نوع المحتوى قبل الإخراج الأخرى. IIS يتجاهل هذا الرأس بصمت ثم إزالته من الإخراج النهائي البرنامج الذي يعرض على الصفحة. إذا لم يكن البرنامج SSI يتضمن هذا الرأس ، ينفذ البرنامج IIS ولكن لا يعرض أي من الإخراج الخاص به. هذا تغيير من سلوك الإصدارات السابقة من Windows التي لا تتطلب هذه الرؤوس وعرض الذي أي رؤوس HTTP تضمين على الصفحة قبل باقي الإخراج من برنامج SSI.
الحل
يمكنك جعل الإخراج تظهر بإحدى الطريقتين التاليتين:
  1. تنفيذ البرنامج باستخدام <!----> #exec cmd الأوامر بدلاً من <!----> #exec cgi الأمر. - أو -

  2. إعادة كتابة البرنامج إلى السطر التالي متبوعاً سطرين سطر جديد قبل أي إخراج الطباعة:
    نوع المحتوى: text/html
تصريح
يعتبر هذا السلوك حسب التصميم.
معلومات أخرى
لتمكين SSIs اتبع الخطوات التالية:
  1. ابدأ في إنترنت خدمة إدارة (ISM), الذي يُحمّل الإضافية IIS بالإدارة لـ Microsoft (MMC).
  2. في MMC, انقر نقراً مزدوجاً فوق اسم الكمبيوتر الخاص بك في الجزء الأيمن.
  3. انقر نقراً مزدوجاً فوق موقع ويب الذي تريد تمكين SSI.
  4. انقر بزر الماوس الأيمن فوق الدليل الظاهري سوف تحتوي على الملفات تمكين SSI. لتمكين SSI الدليل الرئيسي لموقع ويب, انقر بزر الماوس الأيمن فوق موقع ويب.
  5. انقر فوق خصائص ثم انقر فوق علامة التبويب الدليل الرئيسي.
  6. ضمن أذونات التنفيذ ، انقر لتحديد البرامج النصية و للتنفيذ.
  7. انقر فوق موافق. تأكد من تحديد أي الدلائل التي تتضمن ملفات تم تمكين لها SSI في الشاشة Overrides الوراثة.للحصول على معلومات إضافية حول كيفية تمكين <!--cmd #exec--> الأمر, انقر فوق رقم المقالة أدناه لعرضها في "قاعدة المعارف لـ Microsoft:
    233969SSIEnableCmdDirective تعيين إلى FALSE حسب الافتراضي

خطوات إعادة إنشاء في سلوك

  1. تمكين من جانب الملقم يتضمن الدليل الرئيسي لموقع ويب الافتراضي.
  2. ترجمة البرنامج C التالي على ملقم Windows NT 4.0 أو Windows 2000 unpatched:
    #include <stdio.h>int main(int argc, char **argv) {  printf("Hello World\n");}
  3. اسم الملف القابل للتنفيذ Helloworld.exe ثم قم بوضع الملف في الدليل الجذر لملقم ويب. هذا الدليل بشكل افتراضي C:\Inetpub\Wwwroot.
  4. إنشاء صفحة HTML تمكين SSI التالية ومن ثم قم بحفظ الصفحة كملف Ssitest.shtm في الدليل الجذر لملقم ويب:
    <HTML><BODY>Exec cmd: <!--#exec cmd="c:\inetpub\wwwroot\HelloWorld.exe"--><BR>Exec cgi: <!--#exec cgi="/HelloWorld.exe"--></BODY></HTML>
  5. استعرض للوصول إلى http://localhost/ssitest.shtm على جهاز كمبيوتر يعمل بنظام التشغيل Windows NT 4.0 Service Pack 3 (SP3) أو الإصدارات السابقة له أو Windows 2000 Service Pack 1 (SP1) أو إصدار سابق. راجع التالي:
    Exec cmd: Hello WorldExec cgi: Hello World
  6. تطبيق Windows NT 4.0 SP4 أو الإصدار الأحدث أو Windows 2000 المزود بحزمة الخدمة SP2 أو أحدث إلى الكمبيوتر.
  7. استعرض http://localhost/ssitest.shtm مرة أخرى. يمكنك الآن راجع ما يلي:
    Exec cmd: Hello WorldExec cgi:
  8. تعديل التعليمات البرمجية لـ Helloworld.exe لطباعة رأس Content-Type أولاً ثم إعادة ترجمة الملف:
    #include <stdio.h>int main(int argc, char **argv) {  printf("Content-type: text/html\n");  printf("Hello World\n");}
  9. إعادة تحميل http://localhost/ssitest.shtm على جهاز كمبيوتر يعمل بنظام التشغيل Windows NT 4.0 SP4 أو الإصدار الأحدث أو Windows 2000 المزود بحزمة الخدمة SP2 أو أحدث. يمكنك الآن راجع ما يلي:
    Exec cmd: Content-type: text/html Hello WorldExec cgi: Hello World
    الملاحظات التي بعكس <!----> #exec cgi الأمر <!----> #exec cmd الأمر لا يؤدي إلى إزالة أي رؤوس CGI من الإخراج.
مراجع
لمزيد من المعلومات حول SSIs راجع الموضوع "يحتوي جانب الخادم" في الوثائق الفورية IIS. لعرض هذا الموضوع، موقع إدارة ، حدد موقع إدارة مواقع ويب ومن ثم عيّن موقع يحتوي جانب الخادم. يتم الوصول إليها من خلال URL التالي من أي كمبيوتر الوثائق الفورية IIS مع وثائق IIS مثبتة:
iis 5

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

خصائص

رقم الموضوع: 318176 - آخر مراجعة: 01/30/2014 07:26:43 - المراجعة: 3.1

  • Microsoft Internet Information Services 5.0
  • Microsoft Internet Information Server 4.0
  • kbnosurvey kbarchive kbmt kbpending kbprb KB318176 KbMtar
تعليقات