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

שנתחיל?

יכולות עיקריות

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

השלבים הבאים