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