قوانین امنیتی Firebase حفاظت قوی و کاملاً قابل تنظیم برای داده های شما در Cloud Firestore ، Realtime Database و Cloud Storage ارائه می دهد. به راحتی می توانید با پیروی از مراحل این راهنما، Rules را شروع کنید، داده های خود را ایمن کنید و از برنامه خود در برابر کاربران مخرب محافظت کنید.
زبان Firebase Security Rules را بدانید
قبل از شروع نوشتن قوانین، ارزش آن را دارد که کمی زمان بگذارید و زبان قوانین امنیتی Firebase را برای محصولات Firebase که استفاده می کنید مرور کنید. Realtime Database از یک دستور زبان جاوا اسکریپت و ساختار JSON برای Rules خود استفاده می کند.
با یادگیری سینتکس اصلی زبان Firebase Security Rules شروع کنید.
Authentication تنظیم کنید
اگر قبلاً این کار را انجام ندادهاید، Firebase Authentication به برنامه خود اضافه کنید. Firebase Authentication از بسیاری از روشهای رایج احراز هویت پشتیبانی میکند و با قوانین امنیتی Firebase یکپارچه میشود تا قابلیتهای تأیید جامع را ارائه دهد.
می توانید اطلاعات اضافی و سفارشی احراز هویت را برای برنامه خود تنظیم کنید.
درباره قوانین امنیتی Firebase و Firebase Authentication بیشتر بیاموزید.
ساختار داده ها و قوانین خود را تعریف کنید
تعریف داده برای امنیت
نحوه ساختار داده های خود ممکن است بر نحوه ساختار و اجرای قوانین شما تأثیر بگذارد. همانطور که ساختارهای داده خود را تعریف می کنید، پیامدهایی که ممکن است بر ساختار Rules شما داشته باشند را در نظر بگیرید.
به عنوان مثال، در Realtime Database ، ممکن است بخواهید فیلدی را اضافه کنید که نقش خاصی را برای هر کاربر نشان می دهد. سپس، قوانین شما می توانند آن فیلد را بخوانند و از آن برای اعطای دسترسی مبتنی بر نقش استفاده کنند.
همانطور که معماری داده ها و قوانین خود را تعریف می کنید، بسته به محصول شما، روشی را که قوانین آبشاری یا آبشاری نمی کنند را در نظر داشته باشید. با Realtime Database ، قوانین از بالا به پایین کار می کنند، با قوانین کم عمق تر که قوانین عمیق تر را نادیده می گیرند. اگر یک قانون مجوز خواندن یا نوشتن را در یک مسیر خاص اعطا کند، آنگاه به تمام گره های فرزند زیر آن نیز دسترسی می دهد. در مقابل، با Cloud Firestore و Cloud Storage ، قوانین فقط در سطوح مشخصی از سلسله مراتب داده اعمال میشوند و شما قوانین صریح را برای کنترل دسترسی به سطوح مختلف مینویسید.
به قوانین خود دسترسی داشته باشید
برای مشاهده Rules موجود خود، از Firebase CLI یا کنسول Firebase استفاده کنید. مطمئن شوید که قوانین خود را با استفاده از روش یکسان و به طور مداوم ویرایش می کنید تا از بازنویسی اشتباه به روز رسانی ها جلوگیری کنید. اگر مطمئن نیستید که آیا قوانین تعریف شده محلی شما جدیدترین بهروزرسانیها را منعکس میکنند یا خیر، کنسول Firebase همیشه آخرین نسخه اجرا شده از قوانین امنیتی Firebase شما را نشان میدهد.
برای دسترسی به قوانین خود از کنسول Firebase ، پروژه خود را انتخاب کنید، سپس در پانل پیمایش سمت چپ، روی پایگاه داده بیدرنگ کلیک کنید. هنگامی که در پایگاه داده یا سطل ذخیره سازی صحیح قرار گرفتید روی Rules کلیک کنید.
برای دسترسی به قوانین خود از Firebase CLI، به فایل قوانین ذکر شده در فایل firebase.json خود بروید.
قوانین اساسی را بنویسید
همانطور که در حال توسعه برنامه خود هستید و Rules درک می کنید ، سعی کنید Rules برای رسیدگی به چند مورد استفاده اساسی از جمله موارد زیر پیاده سازی کنید:
- فقط مالک محتوا: دسترسی کاربر به محتوا را محدود کنید.
- دسترسی مختلط: دسترسی نوشتن توسط کاربر را محدود کنید، اما دسترسی خواندن عمومی را مجاز کنید.
- دسترسی مبتنی بر ویژگی: دسترسی به یک گروه یا نوع کاربر را محدود کنید.
قوانین خود را آزمایش کنید
اگر قوانین امنیتی Firebase خود را در کنسول Firebase تنظیم میکنید، میتوانید از Firebase Rules Playground برای تأیید سریع رفتار استفاده کنید. با این حال، ما توصیه می کنیم قبل از اعمال تغییرات خود در تولید، آزمایش کامل تری را با Local Emulator Suite انجام دهید.
استقرار قوانین
از کنسول Firebase یا Firebase CLI برای استقرار قوانین خود در تولید استفاده کنید. مراحل ذکر شده در مدیریت و استقرار قوانین امنیتی Firebase را دنبال کنید.