قراءة ترويسات HTTP باستخدام curl: ماذا يكشف Server وما الذي لا يثبته؟


تتيح قراءة ترويسات HTTP باستخدام curl فحص استجابة خادم الويب مباشرة. يعرض -I ترويسات استجابة طلب HEAD؛ قد يظهر حقل Server، وقد يغيب. الاسم أو الإصدار المعلن لا يثبت كل البرامج الموجودة خلف العنوان، ولا يكفي وحده للحكم على وجود ثغرة.
الأوامر أمثلة تعليمية لأجهزة تدريب تملكها ولم تُنفذ أثناء إعداد المقال. العنوان 192.168.56.10 افتراضي؛ استبدله بعنوان هدف المختبر بعد التحقق من نطاق التجربة. لا تنسخ المثال إلى شبكة عمل قبل تحديد النطاق والإذن المناسبين.
ما الفرق بين الترويسة ومحتوى الصفحة؟
تحتوي الاستجابة على سطر حالة وترويسات، وقد تتضمن محتوى مثل HTML. يفيد فصل هذه الأجزاء عندما تريد مراجعة نوع المحتوى أو سياسة التخزين أو التحويل دون قراءة الصفحة نفسها. لا تفترض أن كل ترويسة أمنية أو تشغيلية يجب أن تظهر في كل استجابة؛ السياق ونوع الطلب مهمان.
مثال تدريبي واضح هو خدمة HTTP على منفذ مختبر معروف. اكتب عنوانها والبروتوكول والمنفذ في سجل التجربة. لا تحوّل عنوانًا من http إلى https أو العكس لتجربة عشوائية؛ تأكد من نوع الخدمة الذي أعددته، واستخدم اسم المضيف المناسب إذا كان الخادم يستضيف مواقع متعددة.
كيف تبدأ قراءة ترويسات HTTP باستخدام curl؟
curl -I --connect-timeout 5 --max-time 15 http://192.168.56.10:8080/
يطلب -I طريقة HEAD، وتحدد –connect-timeout مدة مرحلة الاتصال، بينما يضع –max-time حدًا زمنيًا للعملية. هذه أرقام تنظيمية للمثال وليست معيارًا لأداء الخادم. فشل التجربة عند مهلة محددة يحتاج مراجعة المسار والخدمة؛ لا يثبت تلقائيًا توقف الموقع.
على Windows، إذا كانت بيئة الأوامر تفسر اسم curl بصورة مختلفة، استخدم curl.exe عند توفره لتشغيل الأداة المقصودة. راجع curl –version لمعرفة البرنامج الذي تعمل به. لا تصف مخرجات مثال على أنها ما سيظهر عند كل قارئ، فقد تختلف البيئة والخدمة والخيارات.
ماذا يعني حقل Server؟
قد تعلن الاستجابة اسم برنامج أو سلسلة إصدار في حقل Server. سجّل النص كما هو مع العنوان والوقت؛ لا تضف رقمًا مفقودًا من تخمينك. وقد يكون الحقل مرتبطًا بوكيل عكسي أو بوابة أمام التطبيق، لذلك لا تنسبه فورًا إلى برنامج التطبيق أو نظام تشغيل المضيف.
غياب Server لا يعني غياب خادم ويب، كما أن وجوده لا يثبت أن المعلومات المعلنة كاملة أو دقيقة. إذا كنت تدير الخدمة، راجع إعداداتها وحزمها وسجلاتها لتأكيد التفاصيل. تقليل الترويسات المعلنة لا يعوض تحديث البرامج أو تقييد الوصول.
كيف تتعامل مع التحويل ورفض HEAD؟
ابدأ دون اتباع التحويلات تلقائيًا، واقرأ Location إذا ظهر. تأكد أن الوجهة ضمن الخدمة التي تريد مراجعتها قبل إجراء طلب جديد. لا تخلط ترويسات صفحة تحويل بترويسات الاستجابة النهائية في جدول واحد بلا توضيح؛ قد تأتي من مرحلتين مختلفتين.
قد تختلف استجابة HEAD عن GET في بعض التطبيقات أو ترفضه الخدمة. عند الحاجة إلى فحص ترويسات GET في مختبرك، يمكنك طلبها مع تجاهل جسم الاستجابة المعروض. تذكر أن GET طلب فعلي للتطبيق، وليس بديلًا بلا أثر لأي عنوان أو عملية.
curl -sS -D - -o /dev/null --max-time 15 http://192.168.56.10:8080/
المثال الأخير مكتوب لبيئة Linux: يطبع -D – الترويسات ويصرف -o /dev/null الجسم بعيدًا عن الشاشة. على Windows تختلف وجهة التخلص من المخرجات؛ لا تنسخ مسار Linux وتعدّه ملفًا عامًا لكل الأنظمة.
كيف تقارن القراءة المباشرة بكشف Nmap؟
استخدم الترويسات ملاحظة إضافية إلى جانب التعرف على الخدمة. إذا اختلف الاسمان، راجع المنفذ واسم المضيف ونوع الطلب والوكيل الوسيط، بدل ترجيح إحدى الأداتين بلا تحقيق. قد تكون كل نتيجة تصف جزءًا مختلفًا من المسار.
اكتب في تقريرك «أعلنت استجابة HEAD الحقل التالي» بدل «أثبتنا الإصدار المثبت». وأضف ما أكدته من إدارة الخادم بصورة منفصلة. بهذه الطريقة تبقى قراءة ترويسات HTTP باستخدام curl أداة عملية للتشخيص، دون تحويل معلومات معلنة إلى نتائج أمنية غير موثقة.
هذا التطبيق يكمل درس كشف الخدمات والإصدارات باستخدام Nmap بقراءة استجابة HTTP مباشرة؛ قارن الأدلة دون اعتبار الصورة المرفقة نتيجة طلب curl.
أسئلة شائعة
هل -I يرسل GET؟
لا. يطلب ترويسات استجابة HEAD. قد تتعامل بعض الخدمات معه بشكل مختلف عن GET.
هل غياب Server خطأ؟
ليس بالضرورة؛ قد لا تعلن الخدمة هذه الترويسة، ولا يكفي غيابها لتقييم أمن الخادم.
هل أتبع Location تلقائيًا؟
راجع الوجهة أولًا وتأكد أنها ضمن نطاق التجربة، ثم افحص الاستجابة المقصودة.
هل رقم الإصدار المعلن يثبت وجود ثغرة؟
لا. أكّد البرنامج والحزمة والإصلاحات من مصادر الإدارة والمورد قبل إصدار حكم.
المصادر والمراجعة
استُلهم تسلسل الموضوع من مذكرة Network Scanning for Beginners المنشورة باسم CodeMalar، من الصفحات المتاحة التي قدمها القارئ. الشرح العربي والأمثلة إعداد مستقل من Geek4Arab، مع مراجعة الوثائق الرسمية في 29 أكتوبر 2026. لم نستخدم نص الصفحات غير المتاحة ولم ننفذ أمثلة الفحص أثناء إعداد المقال.
مصدر الصورة: Nmap Project — دليل Zenmap الرسمي.
