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