Firebase Security Rules

استخدِم "قواعد الأمان" المرنة والقابلة للتوسيع في Firebase لتأمين بياناتك في Cloud Firestore وFirebase Realtime Database وCloud Storage.

Firebase Security Rules بين بياناتك والمستخدمين الضارين. يمكنك كتابة قواعد بسيطة أو معقّدة تحمي بيانات تطبيقك بمستوى التفصيل الذي يتطلّبه تطبيقك المحدّد.

تستفيد Firebase Security Rules من لغات الإعدادات القابلة للتوسيع والمرنة لتحديد البيانات التي يمكن للمستخدمين الوصول إليها في Realtime Database وCloud Firestore وCloud Storage. تستفيد Firebase Realtime Database Security Rules من JSON في تعريفات القواعد، بينما تستفيد Cloud Firestore Security Rules وFirebase Security Rules في Cloud Storage من لغة فريدة مصمّمة لاستيعاب بنى أكثر تعقيدًا خاصة بالقواعد.

يمكنك الاطّلاع على مزيد من المعلومات حول كيفية إعداد Rules لمنتجات Firebase المحدّدة التي تستخدمها في تطبيقك، وكيف يختلف سلوك Rules بين منتجات Firebase.

البدء

الإمكانات الرئيسية

المرونة اكتب قواعد مخصّصة تتناسب مع بنية تطبيقك وسلوكه. استخدام لغات تتيح لك الاستفادة من بياناتك الخاصة للسماح بالوصولRules
الدقة يمكن أن تكون قواعدك واسعة النطاق أو ضيقة النطاق حسب حاجتك.
الأمان المستقل لأنّ Rules يتم تحديدها خارج تطبيقك (في وحدة تحكّم Firebase أو واجهة سطر الأوامر Firebase)، لا يتحمّل العملاء مسؤولية فرض الأمان، ولا تؤدي الأخطاء إلى تعريض البيانات للخطر، وتكون بياناتك محمية دائمًا.

كيف تعمل هذه الإعلانات؟

Firebase Security Rules من خلال مطابقة نمط مع مسارات قاعدة البيانات، ثم تطبيق شروط مخصّصة للسماح بالوصول إلى البيانات في تلك المسارات. تتضمّن جميع Rules في منتجات Firebase عنصرًا لمطابقة المسار وعبارة شرطية تسمح بالوصول للقراءة أو الكتابة. يجب تحديد Rules لكل منتج من منتجات Firebase تستخدمه في تطبيقك.

بالنسبة إلى Cloud Firestore وCloud Storage وRules، استخدِم البنية التالية:

service <<name>> {
  // Match the resource path.
  match <<path>> {
    // Allow the request if the following conditions are true.
    allow <<methods>> : if <<condition>>
  }
}

بالنسبة إلى Realtime Database، تستخدم Rules المستندة إلى JSON البنية التالية:

{
  "rules": {
    "<<path>>": {
    // Allow the request if the condition for each method is true.
      ".read": <<condition>>,
      ".write": <<condition>>
    }
  }
}

يتم تطبيق Rules كعبارات OR، وليس كعبارات AND. وبالتالي، إذا تطابقت قواعد متعددة مع مسار، وكان أي من الشروط المتطابقة يمنح إذن الوصول، Rules يتم منح إذن الوصول إلى البيانات في هذا المسار. لذلك، إذا كانت قاعدة عامة تمنح إذن الوصول إلى البيانات، لا يمكنك فرض قيود باستخدام قاعدة أكثر تحديدًا. يمكنك تجنُّب هذه المشكلة من خلال التأكّد من أنّ Rules لا تتداخل بشكل كبير. Firebase Security Rules الإبلاغ عن التداخلات في المسارات المتطابقة كتحذيرات من المترجم.

يمكن أن تستفيد Firebase Security Rules أيضًا من Authentication لمنح أذونات مستندة إلى المستخدم، ويمكن أن تكون الشروط التي تحدّدها أساسية جدًا أو معقّدة للغاية. يمكنك الاطّلاع على مزيد من المعلومات حول Rules اللغة والسلوك قبل البدء في الكتابة Rules.

مسار التنفيذ

دمج حِزم تطوير البرامج الخاصة بالمنتجات إعداد Cloud Firestore أو Cloud Storage أو Realtime Database لتطبيقك
كتابة Firebase Security Rules مزيد من المعلومات حول طريقة عمل Rules وإعداد بعض Rules الأساسية
اختبار Firebase Security Rules استخدِم المحاكيَين Realtime Database وCloud Firestore لاختبار سلوك تطبيقك والتحقّق من صحة قواعدك قبل نشرها في مرحلة الإنتاج.
نشر Firebase Security Rules استخدِم وحدة تحكّم Firebase أو واجهة سطر الأوامر Firebase لنشر قواعدك في مرحلة الإنتاج.

الخطوات التالية