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

שנתחיל?

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

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

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

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, תחביר מבוסס JSON של Security Rules:

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

השלבים הבאים