ویب سیکیورٹی کے بنیادی اصول: SSRF، CSRF اور CORS کی وضاحت
جدید ویب کے منظر نامے میں، سیکیورٹی محض ایک فیچر نہیں ہے—یہ ایک بنیاد ہے۔ جیسے جیسے ایپلی کیشنز ایک دوسرے سے زیادہ جڑتی جا رہی ہیں، مختلف اوریجنز اور سرورز پر درخواستوں کو کیسے ہینڈل کیا جاتا ہے، اس کی باریکیوں کو سمجھنا کسی بھی ڈویلپر کے لیے انتہائی ضروری ہے۔
آج، ہم ان تین اہم تصورات میں گہرائی سے اتر رہے ہیں جن میں ہر ویب ڈویلپر کو مہارت حاصل ہونی چاہیے: SSRF، CSRF، اور CORS۔ اگرچہ یہ سننے میں حروف تہجی کے سوپ کی طرح لگ سکتے ہیں، لیکن یہ ویب ایپلی کیشن سیکیورٹی کی پہلی صف کی نمائندگی کرتے ہیں۔
1. SSRF (سرور سائیڈ ریکویسٹ فورجری)
SSRF ایک ایسی کمزوری ہے جہاں ایک حملہ آور سرور سائیڈ ایپلی کیشن کو مجبور کر سکتا ہے کہ وہ حملہ آور کی پسند کے کسی بھی ڈومین پر HTTP درخواستیں بھیجے۔
یہ کیسے کام کرتا ہے
ایک ایسی ویب ایپلی کیشن کا تصور کریں جو ان پٹ کے طور پر ایک URL لیتی ہے (مثلاً پروفائل پکچر لانے یا لنک کا پری ویو کرنے کے لیے) اور پھر سرور سے اس URL پر درخواست کرتی ہے۔ اگر ایپلی کیشن اس URL کی درست طریقے سے تصدیق نہیں کرتی ہے، تو حملہ آور اندرونی IP ایڈریس یا لوپ بیک ایڈریس (127.0.0.1) فراہم کر سکتا ہے۔
سرور، ایک پراکسی کے طور پر کام کرتے ہوئے، اندرونی سروسز سے حساس ڈیٹا حاصل کر سکتا ہے جو عوامی انٹرنیٹ پر ظاہر نہیں ہوتی ہیں، جیسے:
- کلاؤڈ میٹا ڈیٹا: IAM کریڈنشلز حاصل کرنے کے لیے AWS/GCP پر
169.254.169.254تک رسائی۔ - اندرونی ایڈمن پینلز: جینکنز یا کبرنیٹس ڈیش بورڈز جیسے اندرونی ٹولز تک رسائی۔
- پورٹ اسکیننگ: اندرونی نیٹ ورک پر چلنے والی دیگر سروسز کی تلاش۔
بچاؤ کے طریقے
- الاؤ لسٹنگ (Allowlisting): صرف بھروسہ مند ڈومینز کی پہلے سے طے شدہ فہرست میں درخواستوں کی اجازت دیں۔
- ان پٹ کی تصدیق: اس بات کو یقینی بنائیں کہ URL اجازت یافتہ پروٹوکولز (مثلاً صرف
https://) استعمال کرتا ہے اور اندرونی IP رینجز کی طرف اشارہ نہیں کرتا ہے۔ - نیٹ ورک کی علیحدگی: اس بات کو یقینی بنائیں کہ ویب سرور کی اندرونی وسائل تک رسائی محدود ہے۔
2. CSRF (کراس سائٹ ریکویسٹ فورجری)
CSRF ایک ایسا حملہ ہے جو کسی متاثرہ صارف کے براؤزر کو دھوکہ دے کر کسی دوسری ویب سائٹ پر غیر مطلوبہ کارروائی کرنے پر مجبور کرتا ہے جہاں صارف اس وقت لاگ ان ہوتا ہے۔
یہ کیسے کام کرتا ہے
یہ حملہ اس حقیقت کا فائدہ اٹھاتا ہے کہ براؤزر خود بخود ہر درخواست کے ساتھ متعلقہ کریڈنشلز—جیسے سیشن کوکیز—شامل کرتے ہیں۔
- صارف
bank.comمیں لاگ ان ہوتا ہے۔ - صارف دوسرے ٹیب میں ایک بدنیتی پر مبنی سائٹ
evil.comپر جاتا ہے۔ evil.comمیں ایک چھپا ہوا فارم ہوتا ہے جوbank.com/transfer?amount=1000&to=attackerپرPOSTدرخواست جمع کرواتا ہے۔- براؤزر صارف کی
bank.comسیشن کوکی کے ساتھ درخواست بھیجتا ہے۔ bank.comایک درست سیشن دیکھتا ہے اور ٹرانسفر کے عمل کو مکمل کرتا ہے۔
بچاؤ کے طریقے
- اینٹی-CSRF ٹوکنز: ہر ایسی درخواست میں جو اسٹیٹ کو تبدیل کرتی ہے، ایک منفرد، خفیہ اور ناقابل پیش گوئی ٹوکن شامل کریں۔ سرور پروسیسنگ سے پہلے اس ٹوکن کی تصدیق کرتا ہے۔
- SameSite کوکیز: کوکیز پر
SameSiteانتساب کوStrictیاLaxپر سیٹ کریں تاکہ انہیں کراس سائٹ درخواستوں پر بھیجنے سے روکا جا سکے۔ - کسٹم ہیڈرز: AJAX درخواستوں کے لیے، ایک کسٹم ہیڈر (مثلاً
X-Requested-With) کی ضرورت ہوتی ہے جسے معیاری HTML فارم کے ذریعے سیٹ نہیں کیا جا سکتا۔
3. CORS (کراس اوریجن ریسورس شیئرنگ)
SSRF اور CSRF کے برعکس، CORS بذات خود کوئی کمزوری نہیں ہے، بلکہ ایک سیکیورٹی میکانزم ہے۔ یہ سرورز کے لیے براؤزر کو یہ بتانے کا ایک طریقہ ہے: “اس مخصوص بیرونی اوریجن کے لیے میرے وسائل تک رسائی حاصل کرنا ٹھیک ہے۔”
یہ کیوں موجود ہے
بطور ڈیفالٹ، براؤزر سیم-اوریجن پالیسی (SOP) نافذ کرتے ہیں، جو ایک سائٹ کے اسکرپٹ کو دوسری سائٹ سے ڈیٹا پڑھنے سے روکتی ہے۔ یہ evil.com کو آپ کی gmail.com پر ای میلز پڑھنے سے روکتا ہے۔
CORS سرورز کو اس پالیسی کو محفوظ طریقے سے نرم کرنے کی اجازت دیتا ہے۔ جب ایک ویب ایپ کراس اوریجن درخواست کرتی ہے، تو براؤزر ایک Origin ہیڈر بھیجتا ہے۔ سرور Access-Control-Allow-Origin کے ساتھ جواب دیتا ہے۔
عام غلط کنفیگریشنز
- وائلڈ کارڈ اوریجن (
*): تمام اوریجنز کی اجازت دینا۔ اگرچہ عوامی APIs کے لیے ٹھیک ہے، لیکن اگر اسےAccess-Control-Allow-Credentials: trueکے ساتھ ملایا جائے تو یہ خطرناک ہے۔ - اوریجن کی عکاسی کرنا (Reflecting the Origin): تصدیق کے بغیر
Originہیڈر کی بنیاد پر متحرک طور پر اجازت یافتہ اوریجن سیٹ کرنا۔ یہ مؤثر طریقے سے SOP کو مکمل طور پر بائی پاس کر دیتا ہے۔
بہترین طریقہ کار
- مخصوص بنیں: صرف ان مخصوص ڈومینز کی اجازت دیں جنہیں رسائی کی ضرورت ہے۔
- اگر ممکن ہو تو کریڈنشلز سے بچیں: اگر آپ کے API کو کوکیز یا اتھارائزیشن ہیڈرز کی ضرورت نہیں ہے، تو انہیں اجازت نہ دیں۔
- سیکیورٹی مڈل ویئر کا استعمال کریں: ہیڈرز کو دستی طور پر منظم کرنے کے بجائے CORS کنفیگریشن کو سنبھالنے کے لیے اچھی طرح سے آزمودہ لائبریریوں کا استعمال کریں۔
خلاصہ موازنہ
| خصوصیت | SSRF | CSRF | CORS |
|---|---|---|---|
| ہدف | سرور سائیڈ وسائل | کلائنٹ سائیڈ کارروائیاں | براؤزر پر مبنی ڈیٹا تک رسائی |
| استحصال | سرور کا نیٹ ورک ٹرسٹ | براؤزر کا کوکی رویہ | سیم-اوریجن پالیسی (غلط کنفیگریشن) |
| بنیادی دفاع | الاؤ لسٹنگ اور تصدیق | ٹوکنز اور SameSite کوکیز | درست ہیڈر کنفیگریشن |
مضبوط اور جدید ایپلی کیشنز بنانے کے لیے ویب سیکیورٹی کے ان تین ستونوں کو سمجھنا ضروری ہے۔ دفاعی حکمت عملیوں کو نافذ کر کے، آپ اپنے سرور کے اندرونی انفراسٹرکچر اور اپنے صارفین کے نجی ڈیٹا دونوں کی حفاظت کر سکتے ہیں۔
محفوظ رہیں، اور خوشگوار کوڈنگ!