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 או CLI של 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.

נתיב הטמעה

שילוב ערכות ה-SDK של המוצרים מגדירים את Cloud Firestore, Cloud Storage, או Realtime Database עבור אפליקציה.
כתיבת Firebase Security Rules מידע נוסף על איך Rules פועל להגדיר כמה הגדרות בסיסיות של Rules
בדיקה של Firebase Security Rules שימוש באמולטורים Realtime Database ו-Cloud Firestore כדי לבדוק את האפליקציה ומאמתים את הכללים לפני פריסתם בסביבת הייצור.
פריסה של Firebase Security Rules צריך להשתמש במסוף Firebase או ב-CLI של Firebase כדי לפרוס את הכללים לסביבת הייצור.

השלבים הבאים