אימות מהיר של כללי האבטחה של Firebase

כדי לבדוק במהירות את הגרסה המעודכנת של Firebase Security Rules במסוף Firebase, אפשר להשתמש את מגרש המשחקים של הכללים.

'אזור המשחק של הכללים' הוא כלי נוח לשימוש כשבודקים התנהגויות חדשות או מאמתים במהירות כללים בזמן הכתיבה שלהם. הוא מציג הודעה המאשרת שהגישה אושרה או נדחתה בהתאם הפרמטרים שהגדרתם לסימולציה.

שימוש במגרש המשחקים של הכללים

  1. פותחים את מסוף Firebase ובוחרים את הפרויקט הרלוונטי.
  2. לאחר מכן, מתפריט הניווט במוצרים, מבצעים אחת מהפעולות הבאות:
    • בוחרים באפשרות Realtime Database, Cloud Firestore או אחסון, בהתאם לצורך, לוחצים על כללים כדי לעבור אל Rules עם הרשאת עריכה.
  3. אחרי שמבצעים את השינויים, לוחצים על מגרש המשחקים לכללים בעורך.
  4. בהגדרות של Rules Playground, בוחרים אפשרויות לבדיקה, כולל:
    • בדיקת קריאה או כתיבה.
    • מיקום ספציפי במסד הנתונים או בקטגוריית האחסון, כנתיב.
    • סוג אימות - משתמש אנונימי לא מאומת, User-ID ספציפי.
    • נתונים ספציפיים למסמך שהכללים שלך מתייחסים אליהם באופן ספציפי ( לדוגמה, אם הכללים מחייבים נוכחות של שדה ספציפי לפני מאפשרת כתיבה).
  5. לוחצים על Run ומחפשים את התוצאות בבאנר שמעל כלי העריכה.

תרחיש לדוגמה של כללים

איך בודקים את ההתנהגות של כלל Playground באמצעות התרחיש לדוגמה הבא וכללים בסיסיים.

Cloud Firestore

service cloud.firestore {
  match /databases/{database}/documents {
    // Allow only authenticated content owners access
    match /some_collection/{document} {
      allow read, write: if request.auth != null && request.auth.uid == request.resource.data.author_uid
      }
    }
  }

Realtime Database

 // These rules grant access to a node matching the authenticated
 // user's ID from the Firebase auth token
 {
   "rules": {
     "users": {
       "$uid": {
         ".read": "$uid === auth.uid",
         ".write": "$uid === auth.uid"
       }
     }
   }
 }
 

Cloud Storage

// Grants a user access to a node matching their user ID
service firebase.storage {
  match /b/{bucket}/o {
    // Files look like: "user/<UID>/path/to/file.txt"
    match /user/{userId}/{allPaths=**} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
  }
}
  • בעורך Rules, מוסיפים את הכלל שמופיע למעלה.

  • בוחרים באפשרות קבלה מהתפריט הנפתח סוג הסימולציה ומזינים ערך תקין של בשדה Location.

  • מפעילים את האפשרות אימות ובוחרים סוג אימות דחייה של ספק.

  • מזינים את פרטי מזהה המשתמש ולוחצים על הפעלה.

תוצאות הסימולציה מופיעות בחלק העליון של כלי העריכה. בהתאם לתרחיש לדוגמה פרטי מזהה המשתמש שהזנת, אמור להופיע באנר שמאשר את הקריאה אושרה או נדחתה בהצלחה.