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

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

  • ‫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 מ-Antigravity Marketplace, צריך לפעול לפי הוראות ההגדרה. אפשר גם להתקין את המיומנויות ברמת הפרויקט באמצעות הפקודה:

      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 עם בדיקות יחידה (unit testing) ל-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 עם בדיקות יחידה (unit testing) ל-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 ולהדביק אותה בצ'אט של הסוכן.

      • ‫Generate Security Rules for Cloud Firestore: מעתיקים את הפרומפט מ-Cloud Firestore.
      • יצירת Security Rules עבור Cloud Storage for Firebase: מעתיקים את ההנחיה מ-Cloud Storage for Firebase.

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

  1. חשוב לוודא שסוכן ה-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