سؤال

أحاول التعامل مع هذا الاستغلال المحتمل وأتساءل ما هي أفضل طريقة للقيام بذلك؟هل يجب علي استخدام أداة التحقق المشتركة من Apache وإنشاء قائمة بالرموز المسموح بها المعروفة واستخدامها؟

هل كانت مفيدة؟

المحلول

من مقالة ويكيبيديا:

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

تتضمن الأمثلة النموذجية للتطهير الصب إلى عدد صحيح، أو استبدال التعبير العادي العدواني.ومن الجدير بالذكر أنه على الرغم من أن هذه ليست مشكلة خاصة بـ PHP، إلا أن مترجم PHP يحتوي على حماية ضد هذا الهجوم منذ الإصدارين 4.4.2 و5.1.2.

يحرر

أنا مرتبط باستخدام jsp مع إجراءات Java!

لا يبدو أن هناك أي حماية مستندة إلى JSP لمتجه الهجوم هذا - العديد من الأوصاف على الويب تفترض asp أو php، ولكن هذا الرابط يصف طريقة محايدة إلى حد ما للتعامل مع المشكلة (يتم استخدام jsp كمثال عرضي فيها).

في الأساس، خطوتك الأولى هي تحديد الأحرف التي يحتمل أن تكون خطرة (CRs، LFs، إلخ) ثم إزالتها.أخشى أن هذا هو الحل القوي الذي يمكنك أن تأمل فيه!

حل

التحقق من صحة الإدخال.قم بإزالة CRs وLFs (وجميع الأحرف الخطرة الأخرى) قبل تضمين البيانات في أي رؤوس استجابة HTTP، خاصة عند تعيين ملفات تعريف الارتباط وإعادة التوجيه.من الممكن استخدام منتجات الطرف الثالث للدفاع ضد حقن CR/LF واختبار وجود مثل هذه الثغرات الأمنية قبل نشر التطبيق.

نصائح أخرى

استخدام PHP ؟ ؛)

ووفقا لويكيبيديا وPHP التغيير، وكان في PHP حماية ضده في PHP4 منذ 4.4.2 وPHP5 منذ 5.1.2.


ومنزوع الدسم فقط ذلك - ولكن، هذا قد يساعد . مكتوبة أمثلة له في JSP.

وطيب، والصب جيدا إلى int هو لا تستخدم كثيرا عند قراءة الجمل، وأيضا باستخدام التعابير المنطقية في كل عمل الذي يستقبل مدخلات من متصفح يمكن أن يكون فوضوي، والتراسل الفوري تبحث عن حل أكثر قوة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top