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 من لغة فريدة مصمّمة لاستيعاب بنى أكثر تعقيدًا خاصة بالقواعد.

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

البدء

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

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

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

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

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

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

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

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

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

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

مسار التنفيذ

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

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