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

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

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

שימוש ב-Rules Playground

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

תרחיש לדוגמה ב-Rules Playground

אפשר לבדוק את ההתנהגות של Rules 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, מוסיפים את הכלל שמופיע למעלה.

  • בוחרים באפשרות get בתפריט הנפתח Simulation type ומזינים נתיב תקין בשדה Location.

  • מפעילים את המתג Authentication ובוחרים סוג אימות בתפריט הנפתח Provider.

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

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