یہ ٹول کیسے کام کرتا ہے
htpasswd فائل وہ طریقہ ہے جس سے Apache اور nginx کسی ڈائرکٹری کو صارف نام اور پاس ورڈ سے محفوظ کرتے ہیں، اور اس کی ہر سطر ایک صارف نام، ایک کولن اور ایک پاس ورڈ ہیش ہے۔ ہیش ہی وہ حصہ ہے جو اہمیت رکھتا ہے: فائل عموماً سائٹ کی اپنی ڈائرکٹری کے اندر ہوتی ہے، اس لیے اس میں موجود کوئی بھی الٹنے کے قابل چیز سرے سے تحفظ نہیں۔ یہ bcrypt کا اندراج بناتا ہے، جو htpasswd کمانڈ خود اپنے -B اختیار کے ساتھ لکھتی ہے۔
لاگت 10 پر مقرر ہے، وہی طے شدہ قدر جو Apache استعمال کرتا ہے، اور یہاں اس کے لیے کوئی کنٹرول نہیں۔ لائبریری $2a$ کا شناخت کنندہ دیتی ہے اور سابقہ بدل کر $2y$ کر دیا جاتا ہے، جو وہی الگورتھم ہے — نیا شناخت کنندہ ان نفاذوں کو نشان زد کرنے کے لیے آیا تھا جو ایک پرانی خامی سے پاک ہوں، اور اس والے میں وہ خامی کبھی تھی ہی نہیں — اور $2y$ ہی وہ ہے جو کوئی منتظم فائل میں دیکھنے کی توقع رکھتا ہے۔
فائل درست بنانا
- صارف نام میں کولن نہیں آ سکتا: یہی خانوں کو جدا کرنے والا نشان ہے، اس لیے کولن ایسی سطر بنا دیتا ہے جو پڑھی ہی نہیں جا سکتی۔ اسے لکھنے کے بجائے یہاں مسترد کر دیا جاتا ہے۔
- جہاں ممکن ہو فائل ویب روٹ سے باہر رکھیں: ہیش شدہ ہونے کے باوجود پاس ورڈ فائل ایسی چیز نہیں جسے پیش کیا جائے۔ اگر اسے اندر ہی رہنا ہو تو یقینی بنائیں کہ سرور اس کی درخواستیں مسترد کرنے کے لیے ترتیب دیا گیا ہے۔
- Bcrypt صرف پہلے 72 بائٹ پڑھتا ہے: اس سے لمبا پاس ورڈ خاموشی سے کاٹ دیا جاتا ہے، اس لیے ایسا اندراج بنانے کے بجائے جو دِکھنے سے کمزور ہو، اسے یہاں مسترد کر دیا جاتا ہے۔
- بنیادی توثیق ہر درخواست پر پاس ورڈ بھیجتی ہے: اسے صرف کنکشن ہی محفوظ رکھتا ہے، اس لیے یہ HTTPS کے پیچھے ہی مناسب ہے اور کہیں نہیں۔