أخر الاخبار

طريقة حماية قاعدة بيانات firebase

هو عبارة عن JSON ملف يحتوي فيه على اعدادات قراءة و كتابة في قاعدة بيانات firebase اي يعني من الذي يستطيع الوصول الى كتابة وقراءة في قاعدة البيانات.

السلام عليكم اخواني زوار مدونة تقنية ويب سوف نشرح اليوم عن طريقة حماية قاعدة بيانات firebase او طريقة حماية قاعدة , حماية البيانات , كيفية حماية البيانات بالتفصيل في افضل الطرق سنة 2022.


ماهي firebase security rules


هو عبارة عن JSON ملف يحتوي فيه على اعدادات قراءة و كتابة في قاعدة بيانات firebase اي يعني من الذي يستطيع الوصول الى كتابة وقراءة في قاعدة البيانات.


عندما يتم أي عملية قراءة و كتابة على قواعد بيانات فايربيس فان يتم الرجوع الى هذا الملف والتحقق من access المطلوبة. وعند مطابقة صلاحيات ستتم عملية القراءة والكتابة.


عندما يتم رفض اي عملية القراءة و الكتابة فان العملية Clinet في الاندرويد على سبيل المثال سوف يظهر لك عندما تطلب صلاحيات Failed, Permissions Denied.


ملاحظة: هذا الاعدادات سيتم تجاهلها عندما تستخدم firebase realtime database او Cloud Functions protection.


و داخل الى Firebase Console ونرى هذا الاعدادات.


تلقائيا سوف تكون هذا الاعدادات.


في هذا الشكل فقط المستخدمين الذين قامو في تسجيل الدخول باستخدام firebase authentication يمكنهم القراءة والكتابة.


{

   "rules": {

     ".read": "auth != null",

     ".write": "auth != null"

   }

}


ولكي نتأكد من هذا الموضوع في امكانا استخدام ميزة Simulator او حاليا تم استبدالها Rule Playground الموجودة في firebase console. وهو عبارة عن محاكي يمكننا تجربة قراءة او كتابة واهمية هل نرى تمت او لا.


بهذا الشكل عملنا تجربة عملية قراءة على ref الرئيسي / و نرى Authenticated لم نقم في تفعيلها أي ان المستخدم لم يقم في التسجيل الدخول.


ونرى على السطر اليسار الذي قام بالتحكم الذي قام بالتحكم العملية.


ونفس الامر ينطبق بالنسبة لصلاحيات الكتابة.


والان نجرب ان نقوم في تشغيل Authenticated. أي يعني ان المستخدم قام في تسجيل الدخول.


وعند التشغيل هذا الخيار سوف نرى ان يمكنانا اختيار نوع المستخدم هل هو Anonymous او Google او FaceBook. مع توفر UID.


في على سبيل المثال يمكنا فقط جعل مستخدمين الذين قامو بتسجيل الدخول عبر facebook ان يقومو في عمل قراءة او كتابة firebase database. كما سوف تشاهد لاحقا.


عموما سوف نقوم في اختيار اي نوع ونعمل Run.


و سوف نرى ان تمت عملية القراءة في نجاح مع وجود سطر الذي قام في إعطاء الصلاحية.


اذا اردنا إعطاء الصلاحيات data لجميع user access. بدون تسجيل دخول في يمكنك عبر هذا.


{

   "rules": {

     ".read": true,

     ".write": true

   }

}


ملاحظة هامة: في هذا الشكل يمكن اي شخص ان يقوم في حذف جميع البيانات عبر امر واحد curl واحد.


وبالعكس اذا اردت منع أي شخص من استخدام هذا بيانات.


{

   "rules": {

     ".read": false,

     ".write": false

   }

}


في هذا الشكل لن يستطيع احد الوصول وحتى الذين قامو في تسجيل دخول من عرض البيانات او كتابة على قاعدة بيانات.


تمكين قراءة و كتابة لنوع معين


سوف نقوم في جعل users الذين قامو في تسجيل دخول عبر جوجل على سبيل المثال من قراءة وكتابة.


قمنا بالتأكد من user قام في تسجيل الدخول و أيضا auth.provider.


{

   "rules": {

     ".read": "auth != null && auth.provider === 'google'",

     ".write": "auth != null && auth.provider === 'google'"

   }


و أيضا نفس الامر ينطبق على facebook.


{

   "rules": {

     ".read": "auth != null && auth.provider === 'facebook'",

     ".write": "auth != null && auth.provider === 'facebook'"

   }

}


ويمكنك أيضا استخدام فيس بوك و قوقل مع بعضهم


{

   "rules": {

     ".read": "auth != null && auth.provider === 'google' ||

     auth.provider === 'facebook'",

     ".write": "auth != null && auth.provider === 'google' ||

     auth.provider === 'facebook'"

   }

}

تعليقات



حجم الخط
+
16
-
تباعد السطور
+
2
-