پراکسی URL براہ راست ترتیب دینے پر کام کرتا ہے، لیکن وہی قدر Windows بیچ فائل میں جانے کے بعد تصدیق ناکام ہو جاتی ہے۔ جانچیں کہ HTTP کلائنٹ کو URL ملنے سے پہلے بیچ پارسر نے فیصد علامات بدلی ہیں یا نہیں۔

دو الگ الگ تمثیلیں ہیں۔ URL انکوڈنگ ظاہر کر سکتی ہے بیک سلیش کو %5C کے طور پر اور سوالیہ نشان کو %3F کے طور پر۔ بیچ فائل کمانڈ میں لفظی فیصد علامت کو %% کے طور پر ایسکیپ کرنا ہوتا ہے۔

مثالی اکاؤنٹ domain\user کے لیے، پلیس ہولڈر پاس ورڈ pass? کے ساتھ، .bat فائل میں یہ ہو سکتا ہے:

set "https_proxy=http://domain%%5Cuser:pass%%[email protected]:8080"

بعد میں شروع ہونے والے عمل کو ایسا URL ملنا چاہیے جس میں domain%5Cuser:pass%3F ہو۔ دہری فیصد علامات بیچ ماخذ کی ہیں، کلائنٹ کے محفوظ کردہ پراکسی URL کی نہیں۔

اس بیچ ہجے کو .npmrc فائل یا کسی ایپلیکیشن کے پراکسی فیلڈ میں نقل نہ کریں: وہ ان پٹ اسی بیچ پارسنگ مرحلے سے نہیں گزرتے۔ اسی طرح، یہ مثال PowerShell نحو نہیں ہے۔ کوئی دوسرا ریپر، جیسے CALL یا دوسرے شیل کے لیے بنائی گئی کمانڈ، ایک اور پارسنگ مرحلہ لا سکتا ہے اور اس کا اپنا جائزہ درکار ہے۔

SET تفویض کو دکھائے گئے مطابق اقتباس میں رکھیں تاکہ اتفاقی خالی جگہیں یا شیل میٹا کریکٹر غیر ارادی کمانڈ کا حصہ نہ بنیں۔ صرف اقتباسات فیصد پھیلاؤ کو نہیں روکتے۔

نتیجہ جانچتے وقت، پاس ورڈ والا URL مشترکہ لاگ میں چھاپنے کے بجائے متوقع انکوڈنگ کا ترمیم شدہ تمثیل سے موازنہ کریں۔ شیل-ایسکیپنگ کی مرمت اسناد کو محفوظ رکھتی ہے؛ یہ ایسی تصدیقی اسکیم منتخب نہیں کرتی جو کلائنٹ پہلے سے سپورٹ نہیں کرتا تھا۔

متعلقہ مضامین