Firebase Security Rules ، محافظت قوی و کاملاً قابل تنظیمی را برای دادههای شما در Cloud Firestore ، Realtime Database و Cloud Storage فراهم میکنند. شما میتوانید به راحتی با دنبال کردن مراحل این راهنما، شروع به کار با Rules کنید، دادههای خود را ایمن کنید و از برنامه خود در برابر کاربران مخرب محافظت کنید.
زبان Firebase Security Rules را درک کنید
قبل از شروع به نوشتن قوانین، ارزش دارد که زمانی را برای بررسی زبان خاص Firebase Security Rules برای محصولات Firebase که استفاده میکنید، اختصاص دهید. Cloud Storage از مجموعهای از زبان عبارات مشترک (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 یا کنسول Firebase استفاده کنید. مطمئن شوید که قوانین خود را با استفاده از یک روش و به طور مداوم ویرایش میکنید تا از بازنویسی اشتباه بهروزرسانیها جلوگیری شود. اگر مطمئن نیستید که قوانین تعریفشده محلی شما جدیدترین بهروزرسانیها را منعکس میکنند یا خیر، کنسول فایربیس همیشه جدیدترین نسخه پیادهسازیشده از Firebase Security Rules شما را نشان میدهد.
برای دسترسی به قوانین خود از کنسول Firebase ، پروژه خود را انتخاب کنید، سپس در پنل ناوبری سمت چپ، روی Storage کلیک کنید. وقتی در پایگاه داده یا مخزن ذخیرهسازی صحیح قرار گرفتید، روی Rules کلیک کنید.
برای دسترسی به قوانین خود از طریق رابط خط فرمان Firebase ، به فایل قوانین ذکر شده در فایل firebase.json خود بروید.
قوانین اساسی را بنویسید
همانطور که در حال توسعه برنامه خود و درک Rules هستید، سعی کنید Rules برای رسیدگی به چند مورد استفاده اساسی ، از جمله موارد زیر، پیادهسازی کنید:
- فقط مالک محتوا: دسترسی به محتوا را برای کاربر محدود کنید.
- دسترسی مختلط: دسترسی نوشتن را برای کاربر محدود کنید، اما دسترسی خواندن را برای عموم مجاز کنید.
- دسترسی مبتنی بر ویژگی: دسترسی را به یک گروه یا نوع کاربر محدود کنید.
قوانین خود را آزمایش کنید
اگر Firebase Security Rules خود را در کنسول Firebase تنظیم میکنید، میتوانید از Firebase Rules Playground برای اعتبارسنجی سریع رفتار استفاده کنید. با این حال، قبل از اعمال تغییرات خود در محیط عملیاتی، آزمایش کاملتری را با Local Emulator Suite توصیه میکنیم.
قوانین را مستقر کنید
از کنسول Firebase یا رابط خط فرمان Firebase برای استقرار قوانین خود در محیط عملیاتی استفاده کنید. مراحل ذکر شده در مدیریت و استقرار Firebase Security Rules دنبال کنید.