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 ספציפיים שבהם אתם משתמשים באפליקציה, ועל ההבדלים בהתנהגות בין מוצרי FirebaseRules

שנתחיל?

יכולות מרכזיות

גמישות כדאי לכתוב כללים מותאמים אישית שמתאימים למבנה ולהתנהגות של האפליקציה. Rules להשתמש בשפות שמאפשרות לכם למנף את הנתונים שלכם כדי לאשר גישה.
רמת פירוט הכללים יכולים להיות רחבים או מצומצמים, לפי הצורך.
אבטחה עצמאית מכיוון ש-Rules מוגדרים מחוץ לאפליקציה (במסוף Firebase או ב-Firebase CLI), הלקוחות לא אחראים לאכיפת האבטחה, באגים לא פוגעים בנתונים והנתונים שלכם תמיד מוגנים.

איך הם פועלים?

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 כדי לפרוס את הכללים בסביבת הייצור.

השלבים הבאים