توفّر "قواعد الأمان في Firebase" حماية قوية وقابلة للتخصيص بالكامل لبياناتك في Cloud Firestore وRealtime Database وCloud Storage. يمكنك البدء بسهولة في استخدام Rules باتّباع الخطوات الواردة في هذا الدليل، ما يتيح لك تأمين بياناتك وحماية تطبيقك من المستخدمين الضارين.
فهم لغة "قواعد الأمان في Firebase"
قبل البدء في كتابة القواعد، من المفيد تخصيص بعض الوقت لمراجعة لغة "قواعد الأمان في Firebase" الخاصة بمنتجات Firebase التي تستخدمها. تستفيد Realtime Database من بنية JSON وبنية مشابهة لبنية JavaScript في Rules.
ابدأ بالتعرّف على بنية لغة قواعد الأمان الأساسية في Firebase.
إعداد Authentication
إذا لم يسبق لك ذلك، أضِف Firebase Authentication إلى تطبيقك. يتوافق Firebase Authentication مع العديد من طرق المصادقة الشائعة ويتكامل مع قواعد أمان Firebase لتوفير إمكانات تحقّق شاملة.
يمكنك إعداد معلومات مصادقة إضافية ومخصّصة لتطبيقك.
مزيد من المعلومات حول قواعد الأمان في Firebase وFirebase Authentication
تحديد بنية البيانات والقواعد
تحديد البيانات لأغراض الأمان
قد تؤثر طريقة تنظيم بياناتك في طريقة تنظيم قواعدك وتنفيذها. أثناء تحديد هياكل البيانات، ضع في اعتبارك الآثار التي قد تترتب عليها في ما يتعلق ببنية Rules.
على سبيل المثال، في Realtime Database، قد تحتاج إلى تضمين حقل يشير إلى دور محدّد لكل مستخدم. بعد ذلك، يمكن أن تقرأ قواعدك هذا الحقل وتستخدمه لمنح إذن الوصول المستند إلى الأدوار.
أثناء تحديد بنية البيانات والقواعد، ضَع في اعتبارك طريقة تطبيق القواعد أو عدم تطبيقها بشكل متسلسل، وذلك حسب منتجك. في Realtime Database، تعمل القواعد من الأعلى إلى الأسفل، حيث تلغي القواعد الأقل عمقًا القواعد الأكثر عمقًا. إذا منحت قاعدة أذونات القراءة أو الكتابة في مسار معيّن، فإنّها تمنح أيضًا إذن الوصول إلى جميع العُقد الفرعية ضمن هذا المسار. في المقابل، مع Cloud Firestore وCloud Storage، لا تنطبق القواعد إلا على مستويات محدّدة من التدرّج الهرمي للبيانات، وتكتب قواعد صريحة للتحكّم في الوصول إلى مستويات مختلفة.
الوصول إلى قواعدك
للاطّلاع على Rules الحالي، استخدِم إما واجهة سطر الأوامر Firebase أو وحدة تحكّم Firebase. احرص على تعديل قواعدك باستخدام الطريقة نفسها بشكل متّسق لتجنُّب استبدال التعديلات عن طريق الخطأ. إذا لم تكن متأكدًا مما إذا كانت القواعد المحدّدة محليًا تعكس آخر التحديثات، تعرض وحدة تحكّم Firebase دائمًا أحدث إصدار تم نشره من "قواعد أمان Firebase".
للوصول إلى قواعدك من وحدة تحكّم Firebase، اختَر مشروعك، ثم انقر على Realtime Database في لوحة التنقّل اليمنى. انقر على Rules بعد الانتقال إلى قاعدة البيانات أو حزمة التخزين الصحيحة.
للوصول إلى قواعدك من واجهة سطر الأوامر Firebase، انتقِل إلى ملف القواعد المذكور في ملف firebase.json.
كتابة قواعد أساسية
أثناء تطوير تطبيقك وفهم Rules، جرِّب تنفيذ Rules لتلبية بعض حالات الاستخدام الأساسية، بما في ذلك ما يلي:
- مالك المحتوى فقط: يمكنك حظر وصول المستخدمين إلى المحتوى.
- الوصول المختلط: حظر إذن الكتابة حسب المستخدم، ولكن السماح بالوصول العام للقراءة
- الوصول المستند إلى السمات: يمكنك حظر الوصول إلى مجموعة أو نوع من المستخدمين.
اختبار القواعد
إذا كنت بصدد إعداد "قواعد الأمان في Firebase" في Firebaseوحدة التحكّم، يمكنك استخدام Firebase Rules Playground للتحقّق بسرعة من السلوك. ومع ذلك، ننصحك بإجراء اختبار أكثر شمولاً باستخدام Local Emulator Suite قبل نشر تغييراتك في مرحلة الإنتاج.
تفعيل القواعد
استخدِم وحدة تحكّم Firebase أو واجهة سطر الأوامر Firebase لنشر قواعدك في مرحلة الإنتاج. اتّبِع الخطوات الموضّحة في إدارة "قواعد الأمان في Firebase" ونشرها.