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