Catch up on everthing we announced at this year's Firebase Summit. Learn more

הבן את כללי האבטחה של Firebase לאחסון בענן

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

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

מאגר Firebase זמן האמת יש תכונה דומה, שנקרא חוקי מסד Firebase זמן אמת

אימות

הידיעה מיהם המשתמשים שלך היא חלק חשוב בבניית יישום, ואימות Firebase מספק פתרון קל לאבטחה, בצד הלקוח בלבד לאימות. כללי האבטחה של Firebase לאחסון ענן מתחברים לאימות Firebase לאבטחה מבוססת משתמשים. כאשר משתמש מאומת באמצעות Firebase אימות, request.auth משתנה ב אחסון ענן אבטחה חוקי הופך אובייקט שמכיל את המזהה הייחודי של המשתמש ( request.auth.uid ) וכל מידע המשתמשים האחרים האסימון ( request.auth.token ) . כאשר המשתמש אינו מאומת, request.auth הוא null . זה מאפשר לך לשלוט באופן בטוח בגישה לנתונים על בסיס משתמש. ניתן ללמוד עוד על אימות הסעיף.

הרשאה

זיהוי המשתמש שלך הוא רק חלק מהאבטחה. ברגע שאתה יודע מי הם, אתה צריך דרך לשלוט בגישה שלהם לקבצים ב- Cloud Storage.

אחסון ענן מאפשר לך לציין כל קובץ ולכללי הרשאת הרשאה המתקיימים בשרתים שלנו ולקבוע גישה לקבצים באפליקציה שלך. לדוגמה, לכללי אבטחת אחסון ענן מחדל דורשים אימות Firebase כדי לבצע כל read או write פעולות על כל הקבצים:

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}

אתה יכול לערוך כללים אלה על ידי בחירת אפליקצית Firebase ב Firebase הקונסולה וצפיית Rules הלשונית של קטע האחסון.

אימות מידע

כללי אבטחת Firebase עבור אחסון ענן יכולים לשמש גם עבור אימות נתונים, לרבות אימות שם קובץ ונתיב וכן נכסי metadata קבצים כגון contentType ואת size .

service firebase.storage {
  match /b/{bucket}/o {
    match /images/{imageId} {
      // Only allow uploads of any image file that's less than 5MB
      allow write: if request.resource.size < 5 * 1024 * 1024
                   && request.resource.contentType.matches('image/.*');
    }
  }
}

הצעדים הבאים