הנחיה ל-AI: כתיבת כללי אבטחה של Firebase

ההנחיה הזו יכולה לעזור ל-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 עבור 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 ובודקים אותו.

  2. בודקים את Security Rulesתוצאות האימות והבדיקה.

  3. פריסת Security Rules בפרויקט Firebase.

שלב 1: יצירת Security Rules ובדיקות

מתקינים את התוסף ומריצים אותו:

  1. מתקינים את התוסף Firebase ל-Gemini CLI:

    gemini extensions install https://github.com/gemini-cli-extensions/firebase
  2. התחלה Gemini CLI:

    gemini
  3. מתיקיית השורש של הפרויקט, מריצים את התוסף כדי ליצור 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

  1. חשוב לוודא שעוזר ה-AI שלכם מבצע את הפעולות הבאות. אחרי שהתוסף יפעל, תקבלו סיכום שנוצר.

    • אימות התחביר: אחרי יצירת Security Rules, Gemini CLI, המערכת מאמתת את התחביר באופן אוטומטי באמצעות הפקודה firebase_validate_security_rules משרת ה-MCP של Firebase.

    • בדיקות יחידה: אחרי אימות התחביר, Gemini CLI מנסה להריץ את בדיקות היחידה שנוצרו באמצעות Firebase Local Emulator Suite.

  2. אם הבדיקות לא מופעלות באופן אוטומטי, מפעילים את 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:rules
  • Cloud Storage for Firebase

    firebase deploy --only storage

משאבים נוספים

  • כדי לקבל עזרה נוספת בנושא אבטחה, אפשר גם להשתמש בתוסף האבטחה ל-Gemini CLI, תוסף קוד פתוח שמנתח שינויים בקוד כדי לזהות סיכוני אבטחה ונקודות חולשה.