قوانین امنیتی Firebase برای ذخیره سازی ابری را بدانید

به طور سنتی، امنیت یکی از پیچیده ترین بخش های توسعه اپلیکیشن بوده است. در اکثر برنامه‌ها، توسعه‌دهندگان باید سروری بسازند و اجرا کنند که احراز هویت (چه کسی کاربر است) و مجوز (آنچه کاربر می‌تواند انجام دهد) را مدیریت می‌کند. تنظیم احراز هویت و مجوز دشوار است، درست کردن آن دشوارتر است و برای موفقیت محصول شما حیاتی است.

همانند روشی که Firebase Authentication احراز هویت کاربران را برای شما آسان می‌کند، قوانین امنیتی Firebase برای ذخیره‌سازی ابری اجازه دادن به کاربران و تأیید درخواست‌ها را برای شما آسان می‌کند. قوانین امنیتی Cloud Storage با اجازه دادن به شما برای تعیین مجوزهای مبتنی بر مسیر، پیچیدگی را برای شما مدیریت می کند. تنها در چند خط کد، می‌توانید قوانین مجوزی بنویسید که درخواست‌های Cloud Storage را به یک کاربر خاص محدود می‌کند یا اندازه آپلود را محدود می‌کند.

پایگاه داده بیدرنگ Firebase دارای ویژگی مشابهی به نام قوانین امنیتی پایگاه داده بیدرنگ Firebase است

احراز هویت

دانستن اینکه کاربران شما چه کسانی هستند بخش مهمی از ساخت یک برنامه کاربردی است، و Firebase Authentication یک راه حل آسان برای استفاده، ایمن و تنها در سمت مشتری برای احراز هویت ارائه می دهد. قوانین امنیتی Firebase برای Cloud Storage برای امنیت مبتنی بر کاربر با Firebase Authentication مرتبط است. هنگامی که یک کاربر با احراز هویت Firebase احراز هویت می شود، متغیر request.auth در قوانین امنیتی Cloud Storage به یک شی تبدیل می شود که حاوی شناسه منحصر به فرد کاربر ( request.auth.uid ) و سایر اطلاعات کاربر در توکن ( request.auth.token ) است. . هنگامی که کاربر احراز هویت نشده است، request.auth null است. این به شما این امکان را می‌دهد تا دسترسی به داده‌ها را به‌طور ایمن بر اساس هر کاربر کنترل کنید. در بخش احراز هویت می توانید اطلاعات بیشتری کسب کنید.

مجوز

شناسایی کاربر شما تنها بخشی از امنیت است. هنگامی که بدانید آنها چه کسانی هستند، به راهی برای کنترل دسترسی آنها به فایل ها در فضای ذخیره سازی ابری نیاز دارید.

Cloud Storage به شما این امکان را می دهد که قوانین مجوز برای هر فایل و مسیر را مشخص کنید که در سرورهای ما وجود دارد و دسترسی به فایل های برنامه خود را تعیین کنید. به عنوان مثال، قوانین امنیتی پیش‌فرض Cloud Storage به احراز هویت Firebase برای انجام هرگونه عملیات read یا write روی همه فایل‌ها نیاز دارند:

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

با انتخاب یک برنامه Firebase در کنسول Firebase و مشاهده تب Rules در بخش Storage می توانید این قوانین را ویرایش کنید.

اعتبار سنجی داده ها

قوانین امنیتی Firebase برای ذخیره‌سازی ابری همچنین می‌تواند برای اعتبارسنجی داده‌ها، از جمله اعتبارسنجی نام فایل و مسیر و همچنین ویژگی‌های فراداده فایل مانند 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/.*');
    }
  }
}

مراحل بعدی