ההנחיה הזו יכולה לעזור לעוזר הדיגיטלי מבוסס-AI, כמו Gemini CLI, ליצור ולשפר את Firebase Security Rules עבור האפליקציה שלכם. אתם יכולים להשתמש בהנחיה כדי לנסח Rules לתרחישי שימוש נפוצים, כמו מתן גישה ספציפית למשתמש, הטמעה של הרשאות מבוססות-תפקיד ואימות נתונים.
ההנחיה הזו מתמקדת ביצירת Rules עבור:
- Cloud Firestore: אבטחת אוספים ומסמכים על סמך הלוגיקה של האפליקציה.
- Cloud Storage for Firebase: אימות הרשאות הגישה לקבצים המאוחסנים.
ההנחיה הזו יכולה לעזור לכם להתחיל עם אבטחה חזקה, אבל תמיד צריך לבדוק את Rules ביסודיות לפני שפורסים אותו בסביבת הייצור. מידע נוסף על בדיקת Rules זמין במאמר תחילת העבודה עם Firebase Security Rules: בדיקת הכללים.
דרישות מוקדמות
- מומלץ לעיין בשיטות מומלצות לשימוש בכללי אבטחה.
- כדי להריץ בדיקות יחידה ל-Firebase Security Rules ולהשתמש ב-Firebase Local Emulator Suite, צריך להתקין את Node.js ואת Firebase CLI. הוראות מלאות זמינות במאמר בנושא התקנה, הגדרה ושילוב של Local Emulator Suite.
- מומלץ: אם עוד לא עשיתם זאת, התקינו את Gemini CLI. בהוראות הבאות מוסבר איך להתקין Gemini CLIתוסף ואיך להשתמש בו כדי ליצור Rulesהנחיות. אם אתם מעדיפים להשתמש בעוזר AI אחר, אתם יכולים להעתיק את ההנחיה מהמאגר ולהדביק אותה בעוזר ה-AI שבחרתם.
- התוסף Gemini CLI הזה משתמש בשרת Firebase MCP כדי לאמת את ה-Firebase Security Rules שהוא יוצר. אפשר להשתמש בשרת MCP גם כדי לבדוק ולהטמיע את Rules בקלות רבה יותר. צריך להתקין את שרת ה-MCP של Firebase לפני שמשתמשים בתוסף כדי ליצור את Firebase Security Rules.
מגבלות
אנחנו פועלים לשיפור חוויית השימוש, ולכן רשימת המגבלות הזו עשויה להשתנות. כדאי לחזור לכאן לעיתים קרובות כדי לבדוק אם יש עדכונים.
- Gemini ב-Firebase לא יכול ליצור Firebase Security Rules. להשתמש בעוזר AI חלופי, כמו Gemini CLI.
- הפרומפט נועד ליצור Firebase Security Rules עבור Cloud Firestore וCloud Storage for Firebase. עדיין אי אפשר ליצור Rules עבור Firebase Realtime Database.
- Firebase Security Rules לא מופעלות כשניגשים למסד הנתונים או למאגר (bucket) משרת או מסביבת קצה עורפית אחרת, למשל כשמשתמשים ב-Firebase Admin SDK. אם אתם משתמשים ב-Admin SDK, אתם אחראים לניהול ההרשאות ולאימות הנתונים בקוד של ה-Backend.
שימוש בהנחיה
כדי ליצור את הכללים והבדיקות, אפשר להשתמש בתוסף Gemini CLIהניסיוני של Firebase Security Rules.
התוסף הזה מנתח את קוד המקור כדי לעזור לכם לזהות סכימות של נתונים ודפוסי גישה ל-Cloud Firestore ול-Cloud Storage. הכלי נועד ליצור טיוטה של Rules על סמך העיקרון של הרשאות מינימליות, ומנסה לחשוף נקודות חולשה באמצעות סימולציות חוזרות של 'מתקפות'. כדי לעזור לכם לבצע את האימות הסופי, הוא מספק חבילת בדיקות יחידה ראשונית באמצעות
@firebase/rules-unit-testing, שמאפשרת לכם לאמת את לוגיקת האבטחה באופן מקומי באמצעות כלים לאמולטור מקומי ב-Firebase.כדי להתקין את התוסף ולהשתמש בו:
מתקינים את התוסף Gemini CLI:
gemini extensions install https://github.com/firebase/snippets-rulesפתיחת Gemini CLI.
gemini
מתיקיית הבסיס של הפרויקט, מריצים את התוסף כדי ליצור כללים עבור Cloud Firestore:
/firebase-rules:firestore Generate rules using PROJECT ID PROJECT_IDאו ליצור כללים עבור Cloud Storage:
/firebase-rules:storage Generate rules using PROJECT ID PROJECT_ID and BUCKET NAME BUCKET_NAME
התוסף יוצר ספרייה בשם
rules_testעבור Cloud Firestore או ספרייה בשםstorage_rules_testעבור Cloud Storage בתיקיית השורש של הפרויקט. הספרייה החדשה הזו מכילה את קובץ.rulesשנוצר, וגם פרויקט Node.js עם בדיקות יחידות.בודקים את תוצאות האימות והבדיקה של הכללים:
- אימות התחביר – אחרי יצירת הכללים, Gemini CLI מאמת באופן אוטומטי את התחביר באמצעות הפקודה
firebase_validate_security_rulesמשרת ה-MCP של Firebase. - בדיקות יחידה – אחרי אימות התחביר, Gemini CLI מנסה להריץ את בדיקות היחידה שנוצרו באמצעות Firebase Local Emulator Suite. כדי להריץ את הבדיקות, צריך להריץ את Firebase Local Emulator Suite במסוף נפרד.
אם הבדיקות לא מופעלות אוטומטית, מפעילים את Firebase Local Emulator Suite במסוף נפרד ואז משתמשים באחת מהאפשרויות הבאות כדי להפעיל את הבדיקות:
* Instruct Gemini CLI to run tests: ```none Firebase Emulator Suite is running in a separate terminal. Please execute the tests. ``` * Run tests manually by following the instructions in the `README.md` file in the `rules_test` or `storage_rules_test` directory.- אימות התחביר – אחרי יצירת הכללים, Gemini CLI מאמת באופן אוטומטי את התחביר באמצעות הפקודה
כשמרוצים מהתוצאה של Rules שנוצר, משתמשים בפקודת ה-CLI הבאה Firebase כדי לפרוס את Rules.
Cloud Firestore
firebase deploy --only firestore:rulesCloud Storage
firebase deploy --only storage
משאבים נוספים
- כדי לקבל עזרה נוספת בנושא אבטחה, אפשר גם להשתמש בתוסף האבטחה ל-Gemini CLI, תוסף קוד פתוח שמנתח שינויים בקוד כדי לזהות סיכוני אבטחה ונקודות חולשה.