Firebase سیکیورٹی رولز فائر اسٹور، ریئل ٹائم ڈیٹا بیس، اور کلاؤڈ اسٹوریج [S1] میں ڈیٹا کی حفاظت کے لیے ایک دانے دار، سرور سے نافذ میکانزم فراہم کرتے ہیں۔ چونکہ Firebase ایپلی کیشنز اکثر کلاؤڈ سروسز کے ساتھ براہ راست کلائنٹ کی طرف سے تعامل کرتے ہیں، یہ قواعد بیک اینڈ ڈیٹا [S1] تک غیر مجاز رسائی کو روکنے والی واحد رکاوٹ کی نمائندگی کرتے ہیں۔
اجازت دینے والے قواعد کا اثر
غلط کنفیگر شدہ قواعد [S2] ڈیٹا کی نمایاں نمائش کا باعث بن سکتے ہیں۔ اگر قواعد حد سے زیادہ اجازت دینے کے لیے سیٹ کیے گئے ہیں — مثال کے طور پر، پہلے سے طے شدہ 'ٹیسٹ موڈ' کی ترتیبات کا استعمال کرتے ہوئے جو عالمی رسائی کی اجازت دیتا ہے — پروجیکٹ ID کا علم رکھنے والا کوئی بھی صارف [S2] ڈیٹا بیس کے پورے مواد کو پڑھ سکتا ہے، اس میں ترمیم کر سکتا ہے یا اسے حذف کر سکتا ہے۔ یہ کلائنٹ کی طرف سے تمام حفاظتی اقدامات کو نظرانداز کرتا ہے اور اس کے نتیجے میں صارف کی حساس معلومات کے ضائع ہونے یا سروس میں مکمل خلل [S2] ہو سکتا ہے۔
بنیادی وجہ: ناکافی اجازت کی منطق
ان کمزوریوں کی بنیادی وجہ عام طور پر مخصوص شرائط کو نافذ کرنے میں ناکامی ہے جو صارف کی شناخت یا وسائل کی خصوصیات [S3] کی بنیاد پر رسائی کو محدود کرتی ہے۔ ڈویلپر اکثر پیداواری ماحول میں ڈیفالٹ کنفیگریشنز کو فعال چھوڑ دیتے ہیں جو request.auth آبجیکٹ [S3] کی توثیق نہیں کرتے ہیں۔ request.auth کا جائزہ لیے بغیر، سسٹم ایک جائز تصدیق شدہ صارف اور ایک گمنام درخواست گزار [S3] کے درمیان فرق نہیں کر سکتا۔
تکنیکی تدارک
Firebase ماحول کو محفوظ کرنے کے لیے کھلی رسائی سے کم از کم استحقاق کے پرنسپل ماڈل تک جانے کی ضرورت ہے۔
- توثیق کو نافذ کریں: یہ چیک کرکے یقینی بنائیں کہ تمام حساس راستوں کو درست صارف سیشن کی ضرورت ہے کہ آیا
request.authآبجیکٹ صفر [S3] نہیں ہے۔ - شناخت پر مبنی رسائی کو لاگو کریں: ایسے قوانین کو ترتیب دیں جو صارف کے UID (
request.auth.uid) کا موازنہ دستاویز کے اندر موجود کسی فیلڈ یا دستاویز کی ID سے کرتے ہیں تاکہ یہ یقینی بنایا جا سکے کہ صارفین صرف اپنے ڈیٹا تک رسائی حاصل کر سکتے ہیں۔ - دانے دار اجازت کی گنجائش: جمع کرنے کے لیے عالمی وائلڈ کارڈز سے پرہیز کریں۔ اس کے بجائے، ممکنہ حملے کی سطح [S2] کو کم سے کم کرنے کے لیے ہر مجموعہ اور ذیلی جمع کے لیے مخصوص اصول متعین کریں۔
- ایمولیٹر سویٹ کے ذریعے توثیق: مقامی طور پر حفاظتی اصولوں کو جانچنے کے لیے Firebase ایمولیٹر سویٹ کا استعمال کریں۔ یہ لائیو ماحول [S2] میں تعینات کرنے سے پہلے مختلف صارف شخصیات کے خلاف رسائی کنٹرول منطق کی تصدیق کرنے کی اجازت دیتا ہے۔
FixVibe اس کے لیے کیسے ٹیسٹ کرتا ہے۔
FixVibe اب اسے صرف پڑھنے کے لیے BaaS اسکین کے طور پر شامل کرتا ہے۔ baas.firebase-rules Firebase کنفیگریشن کو ایک ہی اصل کے جاوا اسکرپٹ بنڈلز سے نکالتا ہے، بشمول جدید initializeApp(...) بنڈل کی شکلیں، پھر ریئل ٹائم ڈیٹا بیس، فائر اسٹور، اور ZXBEZVIXVK2 کے ساتھ ZXBEXVIXVKTOR کے ساتھ چیک کرتا ہے۔ غیر مستند صرف پڑھنے کی درخواستیں۔ Firestore کے لیے، یہ سب سے پہلے روٹ کلیکشن لسٹنگ کی کوشش کرتا ہے۔ جب فہرست کو مسدود کیا جاتا ہے، تو یہ عام حساس مجموعہ کے ناموں کی بھی تحقیقات کرتا ہے جیسے users، accounts، customers، orders، orders، users messages، admin، اور settings۔ یہ صرف کامیاب گمنام پڑھنے یا فہرستوں کی اطلاع دیتا ہے اور صارف کے دستاویز کے مواد کو نہیں لکھتا، حذف کرتا ہے یا ذخیرہ نہیں کرتا ہے۔
