قوانین امنیتی 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 برای انجام هرگونه عملیات read یا write روی همه فایل‌ها، نیاز به Firebase Authentication دارند:

service firebase.storage {
  match /b/{bucket}/o {
    match /someFolder/{fileName} {
      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/.*');
    }
  }
}

مراحل بعدی