به طور سنتی، امنیت یکی از پیچیده ترین بخش های توسعه اپلیکیشن بوده است. در اکثر برنامهها، توسعهدهندگان باید سروری بسازند و اجرا کنند که احراز هویت (چه کسی کاربر است) و مجوز (آنچه کاربر میتواند انجام دهد) را مدیریت میکند. تنظیم احراز هویت و مجوز دشوار است، درست کردن آن دشوارتر است و برای موفقیت محصول شما حیاتی است.
همانند روشی که Firebase Authentication احراز هویت کاربران را برای شما آسان میکند، Firebase Security Rules برای Cloud Storage اجازه دادن به کاربران و تأیید درخواستها را برای شما آسان میکند. Cloud Storage Security Rules با اجازه دادن به شما برای تعیین مجوزهای مبتنی بر مسیر، پیچیدگی را برای شما مدیریت می کند. تنها در چند خط کد، میتوانید قوانین مجوزی بنویسید که درخواستهای Cloud Storage را به یک کاربر خاص محدود میکند یا اندازه آپلود را محدود میکند.
احراز هویت
request.auth
در Cloud Storage Security Rules به یک شی تبدیل می شود که شامل شناسه منحصر به فرد کاربر ( request.auth.uid
) و سایر اطلاعات کاربر در توکن ( request.auth.token
) است. هنگامی که کاربر احراز هویت نشده است، request.auth
null
است. این به شما این امکان را میدهد تا دسترسی به دادهها را بهطور ایمن بر اساس هر کاربر کنترل کنید. در بخش احراز هویت می توانید اطلاعات بیشتری کسب کنید.
مجوز
read
یا write
روی همه فایلها نیاز دارند:
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/.*'); } } }
مراحل بعدی
شروع به برنامه ریزی توسعه قوانین برای سطل های Cloud Storage خود کنید.
درباره ایمن سازی داده های خود با استفاده از قوانین امنیتی بیشتر بیاموزید.