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

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

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

Firebase Realtime Database دارای ویژگی مشابهی به نام Firebase Realtime Database Security Rules است

احراز هویت

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

مجوز

شناسایی کاربر شما تنها بخشی از امنیت است. هنگامی که آنها را شناختید، به راهی برای کنترل دسترسی آنها به فایل‌ها در Cloud Storage نیاز دارید.

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

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

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

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

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

مراحل بعدی