Requests: تجاهل URL التسوية

تم إنشاؤها على ١٠ ديسمبر ٢٠١٩  ·  4تعليقات  ·  مصدر: psf/requests

في الحالات التي أرغب في اختبار ثغرات Path Traversal في تطبيقات الويب ، يكون عنوان URL الهدف عادةً https://example.com/../../path . باستخدام طريقة GET في الطلبات ، سيتم تسوية عنوان URL هذا على النحو التالي. وبالتالي ، سيؤدي ذلك إلى نتائج غير مقصودة في الاختبار.

r = requests.get('https://example.com/../../path')
print(r.url)
# https://example.com/path

مع curl ، لدينا خيار لتجاهل التسوية: --path-as-is . إذن ، هل لدينا خيار مكافئ لـ requests ؟

التعليق الأكثر فائدة

حاول استخدام الطلب المعد

url = "http://example.com/../something.txt"
s = requests.Session()
req = requests.Request(method='POST' ,url=url, headers=headers, data=data)
prep = req.prepare()
prep.url = url
r = s.send(prep, verify=False)

ال 4 كومينتر

EDjur شكرا لمعلوماتك. هل تعرف حلاً لحل هذا؟

حاول استخدام الطلب المعد

url = "http://example.com/../something.txt"
s = requests.Session()
req = requests.Request(method='POST' ,url=url, headers=headers, data=data)
prep = req.prepare()
prep.url = url
r = s.send(prep, verify=False)

akmalhisyam شكرا جزيلا لك. أنه يعمل بشكل جيد.

akmalhisyam صحيح هنا. سيؤدي استخدام سير العمل PreparedRequests عادةً إلى حل مشكلات مثل هذه إذا كان يجب عليك تعيين شيء ما بشكل صريح.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

JimHokanson picture JimHokanson  ·  3تعليقات

8key picture 8key  ·  3تعليقات

ghtyrant picture ghtyrant  ·  3تعليقات

avinassh picture avinassh  ·  4تعليقات

xsren picture xsren  ·  3تعليقات