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 שבהם אתם משתמשים באפליקציה, ועל ההבדלים בהתנהגות בין מוצרים שונים של FirebaseSecurity Rules
יכולות מרכזיות
| גמישות | כדאי לכתוב כללים מותאמים אישית שמתאימים למבנה ולהתנהגות של האפליקציה. Security Rules להשתמש בשפות שמאפשרות לכם למנף את הנתונים שלכם כדי לאשר גישה. |
| רמת פירוט | הכללים יכולים להיות רחבים או מצומצמים, לפי הצורך. |
| אבטחה עצמאית | הגדרות Security Rules מוגדרות מחוץ לאפליקציה (במסוף Firebase או בממשק שורת הפקודה Firebase), ולכן הלקוחות לא אחראים לאכיפת האבטחה, באגים לא פוגעים בנתונים והנתונים תמיד מוגנים. |
איך הם פועלים?
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, תחביר Security Rules מבוסס-JSON הוא:
{
"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 כדי לפרוס את הכללים בסביבת הייצור. |
השלבים הבאים
- הסבר על Firebase Security Rules השפה.
- מידע נוסף על אופן הפעולה של Firebase Security Rules
- כאן מפורטות טעויות נפוצות שכדאי להימנע מהן.