ההנחיה הזו יכולה לעזור ל-AI Assistant (כמו Gemini CLI) ליצור ולשפר את Firebase Security Rules לאפליקציה שלכם. אתם יכולים להשתמש בהנחיה כדי לנסח Security Rules לתרחישי שימוש נפוצים, כמו מתן גישה ספציפית למשתמש, הטמעה של הרשאות מבוססות-תפקידים ואימות נתונים.
ההנחיה הזו מתמקדת ביצירת Security Rules עבור:
- Cloud Firestore: אבטחת אוספים ומסמכים על סמך הלוגיקה של האפליקציה.
- Cloud Storage for Firebase: אימות הרשאות הגישה לקבצים המאוחסנים.
ההנחיה הזו יכולה לעזור לכם להתחיל עם אבטחה חזקה, אבל תמיד צריך לבדוק את Security Rules ביסודיות לפני הפריסה בסביבת הייצור. מידע נוסף על בדיקת Security Rules זמין במאמר תחילת העבודה עם Firebase Security Rules: בדיקת Security Rules.
דרישות מוקדמות
- מומלץ לעיין בFirebase Security Rulesשיטות המומלצות.
- כדי להריץ בדיקות יחידה ל-Firebase Security Rules ולהשתמש ב-Firebase Local Emulator Suite, צריך להתקין את Node.js ואת Firebase CLI. הוראות מלאות זמינות במאמר בנושא התקנה, הגדרה ושילוב של Firebase Local Emulator Suite.
- מומלץ: אם עוד לא עשיתם זאת, התקינו את Gemini CLI.
בהוראות הבאות מוסבר איך להתקין את התוסף Firebase ל-Gemini CLI ולהשתמש בו כדי ליצור Security Rules. אם אתם מעדיפים להשתמש בעוזר AI אחר, אתם יכולים להעתיק ולהדביק את ההנחיה ל-Cloud Firestore או ל-Cloud Storage for Firebase ממאגר
firebase-toolsאל העוזר ה-AI שבחרתם. - התוסף Firebase ל-Gemini CLI מתחבר לשרת ה-MCP של Firebase כדי לגשת להנחיות שיוצרות ומאמתות Firebase Security Rules, ועוזרות בבדיקה ובפריסה של Security Rules. צריך להתקין את שרת ה-MCP של Firebase לפני שמשתמשים בתוסף כדי ליצור את Firebase Security Rules.
מגבלות
אנחנו פועלים לשיפור חוויית השימוש, ולכן רשימת המגבלות הזו עשויה להשתנות. כדאי לחזור לכאן לעיתים קרובות כדי לבדוק אם יש עדכונים.
הפרומפט נועד ליצור Firebase Security Rules עבור Cloud Firestore וCloud Storage for Firebase. עדיין אי אפשר ליצור Security Rules עבור Firebase Realtime Database.
Firebase Security Rules לא מופעלות כשניגשים למסד הנתונים או לקטגוריה משרת או מסביבת קצה עורפית אחרת, למשל כשמשתמשים ב-Firebase Admin SDK. אם אתם משתמשים ב-Admin SDK, אתם אחראים לניהול ההרשאה ולאימות הנתונים בקוד ה-backend.
Gemini ב-Firebase במסוף Firebase לא יכול ליצור Firebase Security Rules, גם כשמשתמשים בהנחיה הזו. במקום זאת, אפשר להשתמש בעוזר AI חלופי שיש לו גישה לבסיס הקוד, כמו Gemini CLI (שמתואר בדף הזה).
שימוש בהנחיה
ההנחיה הזו זמינה דרך היכולת Security Rules בתוך התוסף Firebase ל-Gemini CLI ליצירת Security Rules ובדיקות. התוסף הזה מנתח את קוד המקור כדי לעזור לכם לזהות סכימות נתונים ודפוסי גישה ל-Cloud Firestore ול-Cloud Storage. הוא נועד לנסח Security Rules על סמך העיקרון של הרשאות מינימליות, ומנסה לחשוף נקודות חולשה באמצעות סימולציות חוזרות של 'מתקפות'. כדי לעזור לכם לבצע את האימות הסופי, הכלי מספק חבילת בדיקות יחידה ראשונית באמצעות @firebase/rules-unit-testing, שמאפשרת לכם לאמת את לוגיקת האבטחה באופן מקומי באמצעות Firebase Local Emulator Suite.
כדי להשתמש בתוסף הזה, צריך לבצע שלושה שלבים שמתוארים בקטע הזה:
שלב 1: יצירת Security Rules ובדיקות
מתקינים את התוסף ומריצים אותו:
מתקינים את התוסף Firebase ל-Gemini CLI:
gemini extensions install https://github.com/gemini-cli-extensions/firebaseהתחלה Gemini CLI:
geminiמתיקיית השורש של הפרויקט, מריצים את התוסף כדי ליצור Security Rules עבור Cloud Firestore או Cloud Storage:
יצירת Security Rules עבור Cloud Firestore:
/firestore:generate_security_rulesבספרייה הראשית, התוסף יוצר קובץ
firestore.rulesוספרייה חדשה בשםsecurity_rules_test_firestoreשמכילה פרויקט Node.js עם בדיקות יחידות (unit testing) ל-Security Rules שנוצר.יצירת Security Rules עבור Cloud Storage for Firebase:
/storage:generate_security_rulesבספריית האב, התוסף יוצר קובץ
storage.rulesוספרייה חדשהsecurity_rules_test_storageשמכילה פרויקט Node.js עם בדיקות יחידות ל-Security Rules שנוצר.
שלב 2: בדיקת תוצאות האימות והבדיקה של Security Rules
חשוב לוודא שעוזר ה-AI שלכם מבצע את הפעולות הבאות. אחרי שהתוסף יפעל, תקבלו סיכום שנוצר.
אימות התחביר: אחרי יצירת Security Rules, Gemini CLI, המערכת מאמתת את התחביר באופן אוטומטי באמצעות הפקודה
firebase_validate_security_rulesמשרת ה-MCP של Firebase.בדיקות יחידה: אחרי אימות התחביר, Gemini CLI מנסה להריץ את בדיקות היחידה שנוצרו באמצעות Firebase Local Emulator Suite.
אם הבדיקות לא מופעלות באופן אוטומטי, מפעילים את Firebase Local Emulator Suite במסוף נפרד, ואז משתמשים באחת מהאפשרויות הבאות כדי להפעיל את הבדיקות:
אפשרות 1: הנחיית Gemini CLI להריץ בדיקות:
Firebase Emulator Suite is running in a separate terminal. Please execute the tests.אפשרות 2: מריצים בדיקות באופן ידני לפי ההוראות בקובץ
README.mdבספרייהrules_testאוstorage_rules_test.
שלב 3: פריסת Security Rules בפרויקט Firebase
כשמרוצים מהתוצאה של Security Rules שנוצר, משתמשים בפקודות הבאות של Firebase CLI כדי לפרוס את Security Rules בפרויקט Firebase:
Cloud Firestore
firebase deploy --only firestore:rulesCloud Storage for Firebase
firebase deploy --only storage
משאבים נוספים
- כדי לקבל עזרה נוספת בנושא אבטחה, אפשר גם להשתמש בתוסף האבטחה ל-Gemini CLI, תוסף קוד פתוח שמנתח שינויים בקוד כדי לזהות סיכוני אבטחה ונקודות חולשה.