Advertisement
  1. Code
  2. Mobile Development
Code

اوامر الامان في الفيربيس

by
Length:ShortLanguages:

Arabic (العربية/عربي) translation by Ali Atwa (you can also view the original English article)

توفر الفيرباس لقواعد البيانات اوامر لحماية بيانتك و هيكلها من المستخدمين الغير موثقين

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

المشكلة

لنفترض ان لدينا بيانات بصيغة json في قاعدة البيانات كما في المثال التالي:

بالنظر لقاعدة البيانات ، يتضح وجود ثلاث مشاكل في البيانات:

  1. المستخدمان user1 & user3 لديهم نفس رقم الهاتف. نريد جعلهم مختلفين
  2. user3 لديه رقم لاسمه بدلا من ان يكون المتغير نص
  3. user2 لديه فقط 7 ارقام في رقم الهاتف بدلا من 11
  4. قيمة العمر لـ user1 و user2 نصا بينما لـ user3 رقم

مع كل هذه الاخطاء، نحن نفقد قيمة البيانات. في الخطوات التالية ساريك كيف نمنع حدوث هذا. 

صلاحيه القواعد

لدى الفيرباس قواعد امان متنوعه:

النوع الوظيفه
.read توضح ما اذا كان مسموح بقراءة البيانات بالنسبة للمستخدمين الاخرين.
.write توضح ما اذا كان مسموح بتحرير البيانات
.validate توضح ما اذا كانت البيانات المدخلة مناسبة من حيث نوعها كمتغير او اذا كان عنصر ناقص.
.indexOn تستخدم لترتيب البيانات حسب ترتيب معين.

لمعرفة المزيد حول صلاحية القواعد Firebase docs

هذه قواعد صلاحيه users في قاعدة البيانات

هذا سيء لانها تسمح لاي مستخدم للوصول للبيانات سواء القراءة و الكتابه اي مستخدم لديه صلاحيه الخول للمسار /users/ واي مسار مرافق له ليس فقط هذا بل اي بيانات تخص تخص المستخدم

التحكم بقواعد الامان

بهذه القواعد نحن نخصص الدخول للبيانات لصاجبها فقط. ليس هذا فقط، يمكن للمستخدمين قراءة و تحرير بياناتهم فقط. يمكنا تحقيق هذا باستخدام $uid هذا المتغير يمثل الرقم التعريفي للمستخدم (يبدا المتغير برمز $) على سبيل المثال الدخول للمسارusers/user1 ، $uid/ هو "user1"

تاليا نحن نستخدم المتغير auth الذي يمثل المستخدم الموثق هذا المتغير معرف مسبقا من قبل سيرفر الفيرباس. في السطر 5و6 نحن نسمح فقط للمستخدم الموثق بنفس الرقم التعريفي الوصول الى بياناته للتحرير و القراءة وبعبارة أخرى، لكل مستخدم، يتم منح حق الوصول لتحرير وقراءة إلى/<users/<uid>/، حيث <uid>يمثل الرقم التعريفي للمستخدم الموثق.

متغيرات اخرى معرفه مسبقا من قبل سيرفر الفيرباس:

now الوقت الحالي بالمللي ثانيه على نظام لينيكس ايبوش.
root RuleDataSnapshotيمثل هذا المتغير المسار الاساسي لقواعد البيانات.
newData RuleDataSnapshot يمثل البيانات المدخلة مسبقا. يتضمن البيانات المدخلة حديثا والموجوده مسبقا
data RuleDataSnapshot يمثل البيانات المدخلة مسبقا.
auth يمثل المتغير الرمز الخاص بالمستخدم الموثق

لمعرفة المزيد حول المتغيرات المسبقة التعريف من قبل سيرفر الفيرباس Firebase docs

تنظيم البيانات

باستخدام قواعد الفيرباس يمكننا ان نحدد نوعية مدخلات قواعد البيانات من حيث المتغيرات

على سبيل المثال في القواعد الاتيه في كلا من السطر 8 و 11 نحن نتاكد ان البيانات الداخلة لكلا المتغيرين الاسم الاول والاخير ان يكون نصا. في السطر 14 نحن نتاكد ان متغير العمر رقم واخيرا في السطر 17و 18 نحن نفرض ان رقم الهاتف نص بطول 11 حرف

لكن كيف نمنع تكرار رقم الهواتف؟

منع التكرار

ساريك لاحقا كيفية منع تكرار ارقام الهواتف

الخطوه الاولى: تنظيم مسار البيانات

اولا نحتاج تعديل المسار الاساسي لتضمين هذا المسار /phoneNumbers/ لذلك اثناء اضافه مستخدم جديد، سنضيف ايضا رقم هاتف المستخدم لهذا المسار عندما ينجح التحقق  سوف يكون شكل البيانات هكذا:

الخطوة الثانية: مراعاة تنظيم البيانات

نحن نحتاج لتعديل قواعد الامان لتنظيم البيانات

هنا نحن نتاكد من ان رقم الهاتف فريد من خلال المسار /phoneNumbers/ مع اعطاء رقم الهاتف كرقم تعريفي بمعنى اخر، نحن نفحص رقم الهاتف للتاكد هل هو مسجل من قبل مستخدم اخر ام لا. لو لم يسجل من قبل فان التحقق سينجح و عمليه الكتابة سوف تقبل 

سيحتاج تطبيقك لاضافه رقم الهاتف لقائمة ارقام الهاتف اثناء اضافة مستخدم جديد وازالة رقم هاتف المستخدم لو ازيل المستخدم.

محاكاة التحقق وقواعد الامان

يمكنك محاكاة قواعد الامان من خلال لوحة التحكم الفيرباس وذلك بالضغط على زر المحاكاة اضف قواعد المان ثن حدد نوع المحاكاة سواء قراءة ام كتابه ثم ادخل بعض البيانات في المسار واضغط على زر تنفيذ (Run).

Firebase Simulator

لو كانت قيمة متغير الاسم الاول رقم بدلا من نص، فإن التحقق سيفشل و يعطي الدخول مرفوض:

Write Access Denied

الخلاصه

في هذا الدرس، تعلمت اساسيات حماية قواعد البيانات للفيرباس: كيفية منع المستخدمين الغر موثقين من الوصول للبيانات والتاكد من ان تكون البيانات منظمة

لمعرفة المزيد عن مبادئ قواعد البيانات راجع المصادر الرسمية. ويمكنك ايضا مراجعه بعض دروس والكورسات عن الفيرباس هنا على اينفاتو تتس!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.