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