قواعد أمان Firebase

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

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

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

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

القدرات الأساسية

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

كيف يعملون؟

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

بالنسبة إلى Cloud Firestore وCloud Storage، تستخدم القواعد بناء الجملة التالي:

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

بالنسبة لقاعدة بيانات الوقت الفعلي، تستخدم القواعد المستندة إلى JSON الصيغة التالية:

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

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

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

مسار التنفيذ

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

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