اثر
کراس سائٹ ریکوسٹ فورجری (CSRF) ایک حملہ آور کو متاثرہ کے براؤزر کو ایک مختلف ویب سائٹ پر ناپسندیدہ حرکتیں کرنے کے لیے دھوکہ دینے کی اجازت دیتا ہے جہاں متاثرہ کی فی الحال تصدیق کی گئی ہے۔ چونکہ براؤزر درخواستوں میں کوکیز جیسے محیطی اسناد کو خود بخود شامل کر لیتے ہیں، اس لیے حملہ آور صارف کی معلومات کے بغیر ریاست کو تبدیل کرنے والی کارروائیاں—جیسے پاس ورڈ تبدیل کرنا، ڈیٹا کو حذف کرنا، یا لین دین شروع کر سکتا ہے۔
بنیادی وجہ
CSRF کی بنیادی وجہ ویب براؤزر کا کسی ڈومین سے منسلک کوکیز بھیجنے کا طے شدہ رویہ ہے جب بھی اس ڈومین سے درخواست کی جاتی ہے، درخواست کی اصل [S1] سے قطع نظر۔ اس مخصوص توثیق کے بغیر کہ درخواست کو جان بوجھ کر ایپلیکیشن کے اپنے صارف انٹرفیس سے متحرک کیا گیا تھا، سرور صارف کی جائز کارروائی اور جعلی کارروائی کے درمیان فرق نہیں کر سکتا۔
جیانگو سی ایس آر ایف پروٹیکشن میکانزم
Django مڈل ویئر اور ٹیمپلیٹ انٹیگریشن [S2] کے ذریعے ان خطرات کو کم کرنے کے لیے ایک بلٹ ان دفاعی نظام فراہم کرتا ہے۔
مڈل ویئر ایکٹیویشن
django.middleware.csrf.CsrfViewMiddleware CSRF تحفظ کے لیے ذمہ دار ہے اور عام طور پر بطور ڈیفالٹ [S2] فعال ہوتا ہے۔ اسے کسی بھی ویو مڈل ویئر سے پہلے پوزیشن میں رکھنا چاہیے جو یہ سمجھے کہ CSRF حملوں کو [S2] پہلے ہی ہینڈل کر لیا گیا ہے۔
ٹیمپلیٹ کا نفاذ
کسی بھی داخلی POST فارم کے لیے، ڈویلپرز کو <form> عنصر [S2] کے اندر {% csrf_token %} ٹیگ شامل کرنا چاہیے۔ یہ یقینی بناتا ہے کہ درخواست میں ایک منفرد، خفیہ ٹوکن شامل ہے، جسے سرور پھر صارف کے سیشن کے خلاف توثیق کرتا ہے۔
ٹوکن کے رساو کے خطرات
نفاذ کی ایک اہم تفصیل یہ ہے کہ {% csrf_token %} کو کبھی بھی بیرونی URLs [S2] کو نشانہ بنانے والے فارمز میں شامل نہیں کیا جانا چاہیے۔ ایسا کرنے سے خفیہ CSRF ٹوکن تیسرے فریق کو لیک ہو جائے گا، ممکنہ طور پر صارف کے سیشن سیکیورٹی [S2] سے سمجھوتہ ہو گا۔
براؤزر لیول ڈیفنس: SameSite Cookies
جدید براؤزرز نے Set-Cookie ہیڈر کے لیے SameSite وصف متعارف کرایا ہے تاکہ [S1] کی گہرائی میں دفاع کی ایک تہہ فراہم کی جا سکے۔
- سخت: کوکی صرف فریق اول کے سیاق و سباق میں بھیجی جاتی ہے، یعنی یو آر ایل بار میں موجود سائٹ کوکی کے ڈومین [S1] سے میل کھاتی ہے۔
- لیکس: کوکی کراس سائٹ کی ذیلی درخواستوں (جیسے تصاویر یا فریموں) پر نہیں بھیجی جاتی ہے لیکن اس وقت بھیجی جاتی ہے جب صارف اصل سائٹ پر جاتا ہے، جیسے کہ معیاری لنک [S1] کی پیروی کرکے۔
FixVibe اس کے لیے کیسے ٹیسٹ کرتا ہے۔
FixVibe میں اب ایک گیٹڈ ایکٹیو چیک کے طور پر CSRF تحفظ شامل ہے۔ ڈومین کی توثیق کے بعد، active.csrf-protection دریافت شدہ حالت کو تبدیل کرنے والے فارموں کا معائنہ کرتا ہے، CSRF ٹوکن کے سائز کے ان پٹس اور SameSite کوکی سگنلز کی جانچ کرتا ہے، پھر کم اثر والے جعلی اصل جمع کرانے کی کوشش کرتا ہے اور صرف اس وقت رپورٹ کرتا ہے جب سرور اسے قبول کرتا ہے۔ کوکی چیکس کمزور SameSite صفات کو بھی جھنڈا دیتی ہیں جو CSRF کے دفاع کو گہرائی میں کم کرتی ہیں۔
