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