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.

مسار التنفيذ

دمج حزم تطوير البرامج (SDK) للمنتجات إعداد 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 لنشر قواعدك في مرحلة الإنتاج.

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