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

ההנחיה הזו יכולה לעזור לכם ליצור ולשפר את Firebase Security Rules לאפליקציה שלכם באמצעות עוזר AI (כמו Google Antigravity). אתם יכולים להשתמש בהנחיה כדי לנסח 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 חלופי שיש לו גישה לבסיס הקוד, כמו Antigravity (שמתואר בדף הזה).

שימוש בהנחיה

היכולת הזו זמינה כשמשתמשים בשרת ה-MCP של Firebase ובכישורי הסוכן של Firebase עם עוזר AI תואם (כמו Antigravity) כדי ליצור את 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:

    • Google Antigravity: כדי להפעיל את חבילת השילוב של Firebase, צריך לעיין בהוראות ההגדרה. אם אתם משתמשים ב-CLI, אתם יכולים להפעיל את המיומנויות על ידי הרצת הפקודה:

      npx skills add firebase/agent-skills --agent=antigravity
    • סוכני תכנות אחרים מבוססי-AI: פועלים לפי ההוראות בנושא יכולות של סוכנים ושרת MCP.

  2. מפעילים את העוזר הדיגיטלי מבוסס ה-AI (לדוגמה, מריצים את הפקודה agy בטרמינל עבור ה-CLI, או פותחים את אפליקציית שולחן העבודה).

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

    • לסוכני תכנות שמשתמשים בשפה טבעית (כמו Antigravity), נותנים לסוכן הנחיה בשפה טבעית.

      • יצירת Security Rules עבור Cloud Firestore:

        Generate Firestore security rules for this project, then run the unit tests.
        

        בספרייה הראשית, הסוכן יוצר קובץ firestore.rules וספרייה חדשה security_rules_test_firestore שמכילה פרויקט Node.js עם בדיקות יחידה ל-Security Rules שנוצר.

      • יצירת Security Rules עבור Cloud Storage for Firebase:

        Generate Cloud Storage security rules for this project, then run the unit tests.
        

        בספרייה הראשית, הסוכן יוצר קובץ storage.rules וספרייה חדשה security_rules_test_storage שמכילה פרויקט Node.js עם בדיקות יחידה ל-Security Rules שנוצר.

    • לסוכני תכנות שתומכים בפקודות עם לוכסן (כמו Claude Code), משתמשים בפקודות הבאות.

      • יצירת Security Rules עבור Cloud Firestore:

        /firestore:generate_security_rules
        
      • יצירת Security Rules עבור Cloud Storage for Firebase:

        /storage:generate_security_rules
        
    • לסוכני תכנות שלא תומכים בשילוב של הנחיות MCP, אפשר להעתיק את תבנית ההנחיה הגולמית ממאגר firebase-tools ולהדביק אותה בצ'אט של הסוכן.

שלב 2: בדיקת תוצאות האימות והבדיקה של Security Rules

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

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

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

  2. אם הבדיקות לא מופעלות באופן אוטומטי, מפעילים את Firebase Local Emulator Suite במסוף נפרד ואז משתמשים באחת מהאפשרויות הבאות כדי להפעיל את הבדיקות:

    • אפשרות 1: נותנים לעוזר ה-AI הוראה להריץ בדיקות:

      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