Firebase Security Rules מספקת הגנה חזקה ומותאמת אישית לחלוטין על הנתונים שלכם ב-Cloud Firestore, ב-Realtime Database וב-Cloud Storage. אפשר להתחיל בקלות עם Rules באמצעות השלבים במדריך הזה, לאבטח את הנתונים ולהגן על האפליקציה מפני משתמשים זדוניים.
הבנת השפה Firebase Security Rules
לפני שמתחילים לכתוב כללים, כדאי להקדיש זמן לבדיקת השפה הספציפית של מוצרי Firebase שבהם אתם משתמשים.Firebase Security Rules
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.
כשמגדירים את הארכיטקטורות של הנתונים והכללים, חשוב לזכור איך הכללים מועברים או לא מועברים, בהתאם למוצר. ב-Realtime Database, הכללים פועלים מלמעלה למטה, וכללים פשוטים יותר מבטלים כללים מורכבים יותר. אם כלל מעניק הרשאות קריאה או כתיבה בנתיב מסוים, הוא מעניק גם גישה לכל צמתי הצאצא שמתחתיו. לעומת זאת, כשמשתמשים ב-Cloud Firestore וב-Cloud Storage, הכללים חלים רק ברמות שצוינו בהיררכיית הנתונים, וצריך לכתוב כללים מפורשים כדי לשלוט בגישה לרמות השונות.
גישה לכללים
כדי לראות את Rules הקיימים, משתמשים ב-Firebase CLI או במסוף Firebase. כדי למנוע החלפה לא מכוונת של עדכונים, חשוב לערוך את הכללים באותה שיטה באופן עקבי. אם אתם לא בטוחים אם הכללים שהגדרתם באופן מקומי משקפים את העדכונים האחרונים, במסוף Firebase תמיד מוצגת הגרסה האחרונה של Firebase Security Rules שהופעלה.
כדי לגשת לכללים ממסוף Firebase, בוחרים את הפרויקט ואז לוחצים על אחסון בחלונית הניווט הימנית. לוחצים על Rules אחרי שנכנסים למסד הנתונים או למאגר האחסון הנכון.
כדי לגשת לכללים מ-CLI Firebase, עוברים לקובץ הכללים שצוין בקובץ firebase.json.
כתיבת כללים בסיסיים
במהלך פיתוח האפליקציה וההיכרות עם Rules, כדאי להטמיע את Rules כדי לטפל בכמה תרחישי שימוש בסיסיים, כולל:
- בעלי התוכן בלבד: הגבלת הגישה לתוכן לפי משתמש.
- גישה מעורבת: הגבלת הרשאת הכתיבה לפי משתמש, אבל מתן הרשאת קריאה לכולם.
- גישה שמבוססת על מאפיינים: הגבלת הגישה לקבוצה או לסוג של משתמשים.
בדיקת הכללים
אם אתם מגדירים את Firebase Security Rules במסוף Firebase, אתם יכולים להשתמש בארגז החול של Firebase Rules כדי לאמת במהירות את ההתנהגות. עם זאת, מומלץ לבצע בדיקה יסודית יותר באמצעות Local Emulator Suite לפני פריסת השינויים בסביבת הייצור.
פריסת כללים
כדי לפרוס את הכללים בסביבת הייצור, משתמשים במסוף Firebase או ב-CLI של Firebase. פועלים לפי השלבים שמפורטים במאמר בנושא ניהול ופריסה של Firebase Security Rules.