تقسيم استجابة HTTP

يُعدّ تقسيم استجابة HTTP أحد أنواع ثغرات تطبيقات الويب ، وينتج عن فشل التطبيق أو بيئته في تنظيف قيم الإدخال بشكل صحيح. ويمكن استغلال هذه الثغرة لتنفيذ هجمات البرمجة النصية عبر المواقع ، وتشويه المواقع من قِبل المستخدمين، وتسميم ذاكرة التخزين المؤقت للويب ، وغيرها من الثغرات المماثلة .

تتمثل هذه الهجمة في جعل الخادم يطبع تسلسلًا من حرف إرجاع السطر (CR، ASCII 0x0D ) وحرف سطر جديد (LF، ASCII 0x0A )، متبوعًا بمحتوى يُدخله المهاجم في قسم الترويسة من استجابته، وذلك عادةً عن طريق تضمينها في حقول الإدخال المُرسلة إلى التطبيق. وفقًا لمعيار HTTP (RFC 2616)، تُفصل الترويسات بحرف إرجاع سطر واحد (CRLF)، وتُفصل ترويسات الاستجابة عن متنها بحرفين (CRLF). لذا، فإن عدم إزالة أحرف الإرجاع والسطر الجديد (CR وLF) يسمح للمهاجم بتعيين ترويسات عشوائية، أو السيطرة على متن الاستجابة، أو تقسيمها إلى استجابتين أو أكثر - ومن هنا جاءت التسمية.

وقاية

الحل العام هو ترميز السلاسل باستخدام عنوان URL قبل تضمينها في رؤوس HTTP مثل Location أو Set-Cookie .

تشمل الأمثلة الشائعة على عمليات التنظيف تحويل البيانات إلى أعداد صحيحة أو استبدالها بتعبيرات نمطية متقدمة . تدعم معظم لغات البرمجة النصية الحديثة من جانب الخادم وبيئات التشغيل، مثل PHP منذ الإصدار 5.1.2 [ 1 ] و Node.js منذ الإصدار 4.6.0 (دعمت الإصدارات السابقة هذه الميزة، ولكن كان من الممكن تجاوز الحماية، وهو ما تم اكتشافه في عام 2016) [ 2 ] ، بالإضافة إلى أطر عمل الويب ، مثل Django منذ الإصدار 1.8.4 [ 3 ] ، تنظيف استجابات HTTP ضد هذا النوع من الثغرات الأمنية.

مراجع

  1. "PHP: إعلان إصدار PHP 5.1.2". مجموعة PHP . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
  2. "CVE-2016-5325 | قاعدة بيانات ثغرات Snyk" . تعرّف على المزيد حول debian:9 باستخدام قاعدة بيانات ثغرات Snyk مفتوحة المصدر . تم الاطلاع بتاريخ 16 يناير 2024 .
  3. "CVE-2015-5144 | قاعدة بيانات ثغرات Snyk" . تعرّف على المزيد حول pip باستخدام قاعدة بيانات ثغرات Snyk مفتوحة المصدر . تم الاطلاع بتاريخ 16 يناير 2024 .