با قوانین امنیتی Firebase شروع کنید

قوانین امنیتی Firebase حفاظت قوی و کاملاً قابل تنظیم برای داده های شما در Cloud Firestore، پایگاه داده بیدرنگ و Cloud Storage ارائه می دهد. به راحتی می توانید با دنبال کردن مراحل این راهنما، قوانین را شروع کنید، داده های خود را ایمن کنید و از برنامه خود در برابر کاربران مخرب محافظت کنید.

زبان Firebase Security Rules را بدانید

قبل از شروع نوشتن قوانین، ارزش آن را دارد که کمی زمان بگذارید و زبان قوانین امنیتی Firebase را برای محصولات Firebase که استفاده می کنید مرور کنید. Cloud Storage از یک ابرمجموعه از Common Expression Language (CEL) استفاده می‌کند که به match متکی است و به عباراتی allow می‌دهد که شرطی را برای دسترسی در یک مسیر تعریف‌شده تعیین کنند.

با یادگیری سینتکس اصلی زبان Firebase Security Rules شروع کنید.

احراز هویت را تنظیم کنید

اگر قبلاً این کار را انجام نداده‌اید، Firebase Authentication را به برنامه خود اضافه کنید. احراز هویت Firebase از بسیاری از روش‌های رایج احراز هویت پشتیبانی می‌کند و با قوانین امنیتی Firebase یکپارچه می‌شود تا قابلیت‌های تأیید جامع را ارائه دهد.

می توانید اطلاعات اضافی و سفارشی احراز هویت را برای برنامه خود تنظیم کنید.

درباره قوانین امنیتی Firebase و احراز هویت Firebase بیشتر بیاموزید.

ساختار داده ها و قوانین خود را تعریف کنید

نحوه ساختار داده های خود ممکن است بر نحوه ساختار و اجرای قوانین شما تأثیر بگذارد. همانطور که ساختارهای داده خود را تعریف می کنید، پیامدهایی که ممکن است بر ساختار قوانین شما داشته باشند را در نظر بگیرید.

به عنوان مثال، در Cloud Storage، ممکن است بخواهید فیلدی را اضافه کنید که نقش خاصی را برای هر کاربر نشان می دهد. سپس، قوانین شما می توانند آن فیلد را بخوانند و از آن برای اعطای دسترسی مبتنی بر نقش استفاده کنند.

همانطور که معماری داده ها و قوانین خود را تعریف می کنید، بسته به محصول شما، روشی را که قوانین آبشاری یا آبشاری نمی کنند را در نظر داشته باشید. با پایگاه داده بیدرنگ، قوانین از بالا به پایین کار می کنند، با قوانین کم عمق تر که قوانین عمیق تر را نادیده می گیرند. اگر یک قانون مجوز خواندن یا نوشتن را در یک مسیر خاص اعطا کند، آنگاه به تمام گره های فرزند زیر آن نیز دسترسی می دهد. در مقابل، با Cloud Firestore و Cloud Storage، قوانین فقط در سطوح مشخصی از سلسله مراتب داده اعمال می شود و شما قوانین صریح را برای کنترل دسترسی به سطوح مختلف می نویسید.

به قوانین خود دسترسی داشته باشید

برای مشاهده قوانین موجود خود، از Firebase CLI یا کنسول Firebase استفاده کنید. مطمئن شوید که قوانین خود را با استفاده از روش یکسان و به طور مداوم ویرایش می کنید تا از بازنویسی اشتباه به روز رسانی ها جلوگیری کنید. اگر مطمئن نیستید که قوانین تعریف شده محلی شما جدیدترین به‌روزرسانی‌ها را منعکس می‌کنند، کنسول Firebase همیشه آخرین نسخه استقرار یافته قوانین امنیتی Firebase شما را نشان می‌دهد.

برای دسترسی به قوانین خود از کنسول Firebase ، پروژه خود را انتخاب کنید، سپس در پانل پیمایش سمت چپ، روی Storage کلیک کنید. زمانی که در پایگاه داده یا سطل ذخیره سازی صحیح قرار گرفتید روی Rules کلیک کنید.

برای دسترسی به قوانین خود از Firebase CLI، به فایل قوانین ذکر شده در فایل firebase.json خود بروید.

قوانین اساسی را بنویسید

همانطور که در حال توسعه برنامه خود هستید و قوانین را درک می کنید، سعی کنید قوانین را برای رسیدگی به چند مورد استفاده اساسی از جمله موارد زیر پیاده سازی کنید:

  • فقط مالک محتوا: دسترسی کاربر به محتوا را محدود کنید.
  • دسترسی مختلط: دسترسی نوشتن توسط کاربر را محدود کنید، اما دسترسی خواندن عمومی را مجاز کنید.
  • دسترسی مبتنی بر ویژگی: دسترسی به یک گروه یا نوع کاربر را محدود کنید.

قوانین خود را آزمایش کنید

اگر قوانین امنیتی Firebase خود را در کنسول Firebase تنظیم می‌کنید، می‌توانید از Firebase Rules Playground برای تأیید سریع رفتار استفاده کنید. با این حال، توصیه می کنیم قبل از اعمال تغییرات خود در تولید، آزمایش کامل تری را با Local Emulator Suite انجام دهید.

استقرار قوانین

از کنسول Firebase یا Firebase CLI برای استقرار قوانین خود در تولید استفاده کنید. مراحل ذکر شده در مدیریت و استقرار قوانین امنیتی Firebase را دنبال کنید.