Hacker News

پینٹسٹرز کے لیے CSP: بنیادی باتوں کو سمجھنا

تبصرے

2 min read Via www.kayssel.com

Mewayz Team

Editorial Team

Hacker News

ہر پینٹیسٹر کو مواد کی حفاظتی پالیسی میں مہارت حاصل کرنے کی ضرورت کیوں ہے

مواد کی حفاظت کی پالیسی (CSP) کراس سائٹ اسکرپٹنگ (XSS)، ڈیٹا انجیکشن، اور کلک جیکنگ حملوں کے خلاف براؤزر سائیڈ دفاعی طریقہ کار میں سے ایک بن گئی ہے۔ پھر بھی دخول کی جانچ کی مصروفیات میں، CSP ہیڈرز اکثر غلط کنفیگر کیے جانے والے — اور غلط فہمی — سیکیورٹی کنٹرولز میں سے ایک رہتے ہیں۔ 2024 کے ایک مطالعہ نے 1 ملین سے زیادہ ویب سائٹس کا تجزیہ کرتے ہوئے پایا کہ صرف 12.8% نے ہی CSP ہیڈرز کو تعینات کیا ہے، اور ان میں سے، تقریباً 94% میں کم از کم ایک پالیسی کی کمزوری ہے جس سے فائدہ اٹھایا جا سکتا ہے۔ پینٹسٹرز کے لیے، CSP کو سمجھنا اختیاری نہیں ہے — یہ سطحی سطح کے جائزے اور ایک رپورٹ کے درمیان فرق ہے جو درحقیقت کلائنٹ کی حفاظتی پوزیشن کو مضبوط کرتا ہے۔

چاہے آپ ویب ایپلیکیشن اسسمنٹ کر رہے ہوں، بگ باؤنٹی ہنٹنگ کر رہے ہوں، یا کسی ایسے کاروباری پلیٹ فارم میں سیکیورٹی بنا رہے ہوں جو کسٹمر کے حساس ڈیٹا کو ہینڈل کرتا ہو، CSP کا علم بنیادی ہے۔ یہ گائیڈ اس بات کی وضاحت کرتا ہے کہ CSP کیا ہے، یہ کس طرح کام کرتا ہے، یہ کہاں ناکام ہوتا ہے، اور کس طرح پینٹیسٹر کمزور پالیسیوں کا منظم طریقے سے جائزہ لے سکتے ہیں اور ان کو نظرانداز کر سکتے ہیں۔

مواد کی حفاظت کی پالیسی دراصل کیا کرتی ہے

اس کے مرکز میں، CSP ایک اعلانیہ حفاظتی طریقہ کار ہے جو HTTP رسپانس ہیڈر (یا کم عام طور پر، ٹیگ) کے ذریعے فراہم کیا جاتا ہے۔ یہ براؤزر کو ہدایت دیتا ہے کہ مواد کے کون سے ذرائع — اسکرپٹس، سٹائلز، امیجز، فونٹس، فریم اور مزید — کو دیئے گئے صفحہ پر لوڈ اور عمل کرنے کی اجازت ہے۔ جب کوئی وسیلہ پالیسی کی خلاف ورزی کرتا ہے، تو براؤزر اسے بلاک کر دیتا ہے اور اختیاری طور پر ایک مخصوص اینڈ پوائنٹ پر خلاف ورزی کی اطلاع دیتا ہے۔

CSP کے پیچھے اصل محرک XSS حملوں کو کم کرنا تھا۔ روایتی XSS ڈیفنس جیسے ان پٹ سینیٹائزیشن اور آؤٹ پٹ انکوڈنگ مؤثر لیکن ٹوٹ پھوٹ کا شکار ہیں - ایک واحد یاد شدہ سیاق و سباق یا انکوڈنگ کی خرابی خطرے کو دوبارہ پیش کر سکتی ہے۔ CSP ایک ڈیفنس میں گہرائی والی پرت کا اضافہ کرتا ہے: یہاں تک کہ اگر کوئی حملہ آور DOM میں نقصان دہ اسکرپٹ ٹیگ لگاتا ہے، مناسب طریقے سے تشکیل شدہ پالیسی براؤزر کو اس پر عمل کرنے سے روکتی ہے۔

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

CSP ہیڈر کی اناٹومی: ہدایات اور ذرائع

ایک CSP ہیڈر ہدایات پر مشتمل ہوتا ہے، ہر ایک مخصوص وسائل کی قسم کو کنٹرول کرتا ہے۔ ہدف کی پالیسی کا جائزہ لینے والے کسی بھی پینٹسٹر کے لیے ان ہدایات کو سمجھنا ضروری ہے۔ سب سے اہم ہدایات میں شامل ہیں default-src (کسی بھی ہدایت کا فال بیک جو واضح طور پر سیٹ نہیں کیا گیا ہے)، script-src (JavaScript execution)، style-src (CSS)، img-src (تصاویر)، connect-src (تصاویر)، connect (Web-Src) frame-src (ایمبیڈڈ iframes)، اور object-src (پلگ ان جیسے فلیش یا جاوا ایپلٹس)۔

ہر ہدایت ایک یا زیادہ ماخذ اظہار کو قبول کرتی ہے جو اجازت شدہ اصلیت کی وضاحت کرتی ہے۔ یہ مخصوص میزبان ناموں (https://cdn.example.com) سے لے کر وسیع تر کلیدی الفاظ تک ہیں:

  • 'self' — دستاویز کے طور پر ایک ہی اصل سے وسائل کی اجازت دیتا ہے
  • 'کوئی نہیں' — اس قسم کے تمام وسائل کو روکتا ہے
  • 'unsafe-inline' — ان لائن اسکرپٹس یا اسٹائل کی اجازت دیتا ہے (XSS تحفظ کو مؤثر طریقے سے بے اثر کرتا ہے)
  • 'unsafe-eval' — eval(), setTimeout(string)، اور اسی طرح کے متحرک کوڈ پر عمل درآمد کی اجازت دیتا ہے
  • 'nonce-{random}' — مخصوص ان لائن اسکرپٹس کی اجازت دیتا ہے جو مماثل کرپٹوگرافک نونس کے ساتھ ٹیگ کیے گئے ہوں
  • 'سخت-متحرک' — میزبان کی بنیاد پر اجازت دینے والی فہرستوں کو نظر انداز کرتے ہوئے، پہلے سے قابل بھروسہ اسکرپٹس کے ذریعے لوڈ کردہ اسکرپٹس پر بھروسہ کرتا ہے
  • ڈیٹا: — ڈیٹا URIs کو مواد کے ذرائع کے طور پر اجازت دیتا ہے

ایک حقیقی دنیا کا CSP ہیڈر اس طرح نظر آ سکتا ہے: مواد کی حفاظت-پالیسی: ڈیفالٹ-src 'self'; script-src 'self' https://cdn.jsdelivr.net 'nonce-abc123'; style-src 'self' 'unsafe-inline'; img-src *؛ آبجیکٹ-src 'کوئی نہیں'۔ ایک پینٹسٹر کے طور پر، آپ کا کام اس پالیسی کو پڑھنا اور فوری طور پر شناخت کرنا ہے کہ یہ کہاں مضبوط ہے، کہاں کمزور ہے، اور کہاں اس کا فائدہ اٹھایا جا سکتا ہے۔

عام CSP غلط کنفیگریشنز پینٹسٹرز کو نشانہ بنانا چاہیے

CSP ہیڈر کی تعیناتی اور موثر CSP ہیڈر کی تعیناتی کے درمیان فاصلہ بہت زیادہ ہے۔ عملی طور پر، زیادہ تر پالیسیوں میں ڈویلپر کی سہولت، فریق ثالث کے انضمام، یا سادہ غلط فہمی کے ذریعے متعارف کرائی گئی کمزوریاں ہوتی ہیں۔ تشخیص کے دوران، پینٹسٹرز کو ان عام ناکامیوں کی منظم طریقے سے جانچ کرنی چاہیے۔

سب سے زیادہ تباہ کن غلط کنفیگریشن 'unsafe-inline' کی script-src ہدایت میں موجودگی ہے۔ یہ واحد کلیدی لفظ CSP کے پورے اینٹی XSS فائدے کو بنیادی طور پر بیکار بنا دیتا ہے، کیونکہ یہ براؤزر کو کسی بھی ان لائن