מתחילים לעבוד עם כללי אבטחה של Firebase

Firebase Security Rules מספקים הגנה חזקה ומותאמת אישית לחלוטין על הנתונים שלכם ב-Cloud Firestore, ב-Realtime Database וב-Cloud Storage. תוכלו להתחיל להשתמש ב-Rules בקלות לפי השלבים שמפורטים במדריך הזה, לאבטח את הנתונים ולהגן על האפליקציה מפני משתמשים זדוניים.

הבנת השפה Firebase Security Rules

לפני שמתחילים לכתוב כללים, כדאי להקדיש זמן כדי לבדוק את השפה הספציפית של Firebase Security Rules למוצרי Firebase שבהם אתם משתמשים. Cloud Storage משתמש בקבוצת-על של Common Expression Language ‏ (CEL) שמבוססת על הצהרות match ו-allow שמגדירות תנאי גישה בנתיב מוגדר.

מומלץ להתחיל ללמוד את התחביר הבסיסי של שפת Firebase Security Rules.

הגדר את Authentication

אם עדיין לא עשיתם זאת, מוסיפים את Firebase Authentication לאפליקציה. ‏Firebase Authentication תומך בשיטות אימות נפוצות רבות ומשולב עם Firebase Security Rules כדי לספק יכולות אימות מקיפות.

אתם יכולים להגדיר פרטי אימות נוספים בהתאמה אישית לאפליקציה.

מידע נוסף על Firebase Security Rules ו-Firebase Authentication

הגדרת המבנים של הנתונים והכללים

האופן שבו תבנו את המבנה של הנתונים עשוי להשפיע על האופן שבו תבנו את הכללים ותטמיעו אותם. כשמגדירים את מבני הנתונים, חשוב להביא בחשבון את ההשלכות שלהם על המבנה של Rules.

לדוגמה, ב-Cloud Storage, יכול להיות שתרצו לכלול שדה שמציין תפקיד ספציפי לכל משתמש. לאחר מכן, הכללים יוכלו לקרוא את השדה הזה ולהשתמש בו כדי להעניק גישה מבוססת-תפקיד. אפשר גם ליצור מסד נתונים של Cloud Firestore, לאחסן את קריטריונים הגישה במסמכים של Cloud Firestore ואז לגשת למסמכים האלה מ-Cloud Storage Security Rules.

כשמגדירים את הארכיטקטורות של הנתונים והכללים, חשוב לזכור איך הכללים מופעלים ברצף (cascade) או לא מופעלים ברצף, בהתאם למוצר. כשמשתמשים ב-Realtime Database, הכללים פועלים מלמעלה למטה, וכללים ברמה שטחית יותר מבטלים כללים ברמה עמוקה יותר. אם כלל מעניק הרשאות קריאה או כתיבה בנתיב מסוים, הוא מעניק גם גישה לכל צמתי הצאצאים שמתחתיו. לעומת זאת, ב-Cloud Firestore וב-Cloud Storage הכללים חלים רק ברמות מסוימות בהיררכיית הנתונים, ואתם כותבים כללים מפורשים כדי לשלוט בגישה לרמות שונות.

גישה לכללים

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

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

כדי לגשת לכללים מ-CLI של Firebase, עוברים לקובץ הכללים שמופיע בקובץ firebase.json.

כתיבה של כללים בסיסיים

במהלך הפיתוח של האפליקציה וההיכרות עם Rules, כדאי לנסות להטמיע את Rules כדי לטפל בכמה תרחישים בסיסיים לדוגמה, כולל:

  • בעלי התוכן בלבד: הגבלת הגישה של משתמשים לתוכן.
  • גישה משולבת: הגבלת הרשאת הכתיבה לפי משתמש, אבל מתן הרשאת קריאה לכולם.
  • גישה מבוססת-מאפיין: הגבלת הגישה לקבוצה או לסוג של משתמשים.

בדיקת הכללים

אם אתם מגדירים את Firebase Security Rules במסוף Firebase, תוכלו להשתמש ב-Firebase Rules Playground כדי לאמת את ההתנהגות במהירות. עם זאת, מומלץ לבצע בדיקה יסודית יותר באמצעות Local Emulator Suite לפני פריסת השינויים בסביבת הייצור.

פריסת כללים

אפשר לפרוס את הכללים בסביבת הייצור באמצעות מסוף Firebase או ה-CLI של Firebase. פועלים לפי השלבים שמפורטים בקטע ניהול ופריסה של Firebase Security Rules.