کلینک A اور کلینک B ایک کوڈ بیس، دو سب ڈومینز اور دفتر اور VPN سے آنے والے مہمانوں کا مرکب مشترک رکھتے ہیں۔ نیٹ ورک ٹیمیں عموماً دونوں داخلے الگ الگ ترتیب دیتی ہیں، اور یہ درست ہے، جب تک ایپلیکیشن ایسا نہ کرے۔ نیچے دی گئی جانچیں ایپلیکیشن میں ہونی چاہئیں اور درخواست کس دروازے سے آئی اس سے قطع نظر یکساں برتاؤ کرنا چاہیے۔

پہلا: ہوسٹ نام صرف ایک کرایہ دار کا نام بتاتا ہے

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

ایک ہی ہوسٹ نام کی تلاش سے سیاق و سباق اور اجازت دونوں واپس کرنے والا مشترکہ معاون فنکشن بگ کا آغاز ہے۔

دوسرا: رکنیت سیشن سے آتی ہے

تصدیق شدہ صارف کی فعال رکنیتیں تلاش کریں اور انہیں پہلی جانچ کے کرایہ دار سے موازنہ کریں۔ جو صارف دونوں کلینکوں میں ہے وہ تبدیل کر سکتا ہے، مگر تبدیلی درخواست کے سیاق میں درج ایک واضح عمل ہونی چاہیے، URL سے نکالا گیا اندازہ نہیں۔ جو صارف ایک کلینک میں ہے اور دوسرے کی درخواست کرتا ہے اسے مسترد کیا جاتا ہے، ڈاؤن لوڈز اور API کالز سمیت۔

منفی صورت ریکارڈ شناخت کنندہ اور کرایہ دار پیرامیٹر تبدیل کر کے جانچیں۔ اگر دونوں میں سے کوئی تبدیلی ڈیٹا واپس کرے تو دائرہ درخواست سے پڑھا جا رہا ہے، تصدیق شدہ رکنیت سے نہیں۔

کوکی دائرہ اور واحد سائن اون طے کرتے ہیں کہ اکاؤنٹ کہاں پیش کیا جا سکتا ہے۔ وہ طے نہیں کرتے کہ وہ اکاؤنٹ کیا پڑھ سکتا ہے۔

تیسرا: نیٹ ورک شخص کے بارے میں کچھ ثابت نہیں کرتا

VPN گیٹ وے سرنگ کی تصدیق کرتا ہے، اور عوامی اجازت فہرست پتوں کی حد کی تصدیق کرتی ہے۔ کوئی بھی کسی شخص کی شناخت نہیں کرتا۔ NAT بہت سے صارفین کو ایک ماخذ پتے میں سمیٹ دیتا ہے، اور دفتری حد عمارت میں موجود ہر شخص کے لیے وہی کرتی ہے۔ دونوں کو ترسیل کی حقیقت مانیں اور اجازت ایپلیکیشن میں رکھیں، یا ایسی یکجائی میں رکھیں جو شناخت صریحاً بیان کرے اور اسی طرح جانچی جائے۔

DNS تیسرا ترسیل کا حقیقت ہے۔ نجی جواب کے لیے نجی راستہ چاہیے، اور عوامی سامنے کے لیے معاون اصل راستہ چاہیے۔ ان میں سے کوئی اجازت نہیں رکھتا۔

دیوار پر لگانے کے لیے ایک جملہ: نیٹ ورک طے کرتا ہے کہ درخواست کیسے آتی ہے، اور ایپلیکیشن طے کرتی ہے کہ وہ کیا پڑھ سکتی ہے۔

چوتھا: دونوں داخلوں پر میٹرکس چلائیں

قابو شدہ اکاؤنٹس استعمال کر کے A کو A پر، B کو B پر، A کو B پر، ایک نامعلوم ہوسٹ نام اور بغیر رکنیت کا تصدیق شدہ اکاؤنٹ جانچیں۔ چوتھا اور پانچواں بند شکل میں ناکام ہونا چاہیے اور کبھی طے شدہ کرایہ دار پر نہیں گرنا چاہیے۔ وہی میٹرکس VPN داخلے سے بھی چلائیں، ہر اکاؤنٹ کے لیے ایک سیشن جار کے ساتھ:

curl -s -o /dev/null -w '%{http_code}' -b jar.txt https://clinic-b.example.com/records/42
curl -s -o /dev/null -w '%{http_code}' -b jar.txt https://clinic-a.example.com/records/42

پھر اجازت فہرست میں ایک اندراج بدلیں اور دوبارہ چلائیں۔ ہلنے والا نتیجہ یعنی کوئی نیٹ ورک کنٹرول اجازت کا فیصلہ کر رہا ہے۔

سامنے کی کسی بھی تبدیلی کے بعد میٹرکس دہرائیں، کیونکہ جانچ چھوڑ دینے والا دوسرا کوڈ راستہ اس حد کے کٹاؤ کا سب سے عام طریقہ ہے۔ متوقع نتیجہ بورنگ ہے: ہر داخلہ وہی جواب دیتا ہے۔

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