Firebase Security Rules
از قوانین امنیتی Firebase انعطافپذیر و قابل توسعه ما برای ایمنسازی دادههای خود در Cloud Firestore ، Firebase Realtime Database و Cloud Storage استفاده کنید.
Firebase Security Rules بین دادههای شما و کاربران مخرب قرار میگیرند. میتوانید قوانین ساده یا پیچیدهای بنویسید که از دادههای برنامه شما تا سطح جزئیاتی که برنامه خاص شما نیاز دارد، محافظت کند.
Firebase Security Rules از زبانهای پیکربندی توسعهپذیر و انعطافپذیر برای تعریف دادههایی که کاربران شما میتوانند برای Realtime Database ، Cloud Firestore و Cloud Storage به آنها دسترسی داشته باشند، استفاده میکنند. Firebase Realtime Database Security Rules از JSON در تعاریف قوانین استفاده میکنند، در حالی که Cloud Firestore Security Rules و Firebase Security Rules برای Cloud Storage از یک زبان منحصر به فرد ساخته شده برای تطبیق با ساختارهای پیچیدهتر مختص قوانین بهره میبرند.
درباره نحوه تنظیم Rules برای محصولات خاص Firebase که در برنامه خود استفاده میکنید و نحوه تفاوت رفتار Rules در محصولات Firebase بیشتر بدانید.
قابلیتهای کلیدی
| انعطافپذیری | قوانین سفارشی بنویسید که برای ساختار و رفتار برنامه شما منطقی باشند. Rules از زبانهایی استفاده میکنند که به شما امکان میدهند از دادههای خود برای مجوز دسترسی استفاده کنید. |
| دانهبندی | قوانین شما میتوانند به اندازه نیاز شما گسترده یا محدود باشند. |
| امنیت مستقل | از آنجا که Rules خارج از برنامه شما (در کنسول Firebase یا Firebase CLI) تعریف میشوند، کلاینتها مسئول اجرای امنیت نیستند، اشکالات دادهها را به خطر نمیاندازند و دادههای شما همیشه محافظت میشوند. |
چگونه کار میکنند؟
Firebase Security Rules با تطبیق یک الگو با مسیرهای پایگاه داده و سپس اعمال شرایط سفارشی برای دسترسی به دادهها در آن مسیرها کار میکنند. همه Rules در محصولات فایربیس دارای یک جزء تطبیق مسیر و یک عبارت شرطی هستند که امکان دسترسی خواندن یا نوشتن را فراهم میکنند. شما باید برای هر محصول فایربیس که در برنامه خود استفاده میکنید، Rules تعریف کنید.
برای Cloud Firestore و Cloud Storage ، Rules از سینتکس زیر استفاده میکنند:
service <<name>> {
// Match the resource path.
match <<path>> {
// Allow the request if the following conditions are true.
allow <<methods>> : if <<condition>>
}
}
برای Realtime Database ، Rules مبتنی بر JSON از سینتکس زیر استفاده میکنند:
{
"rules": {
"<<path>>": {
// Allow the request if the condition for each method is true.
".read": <<condition>>,
".write": <<condition>>
}
}
}
Rules به صورت دستورات OR اعمال میشوند، نه دستورات AND . در نتیجه، اگر چندین قانون با یک مسیر مطابقت داشته باشند و هر یک از شرایط مطابقت داده شده دسترسی را اعطا کند، Rules به دادههای آن مسیر دسترسی میدهند. بنابراین، اگر یک قانون کلی دسترسی به دادهها را اعطا کند، نمیتوانید با یک قانون خاصتر محدود کنید. با این حال، میتوانید با اطمینان از اینکه Rules شما بیش از حد همپوشانی ندارند، از این مشکل جلوگیری کنید. پرچم Firebase Security Rules در مسیرهای مطابقت داده شده شما به عنوان هشدارهای کامپایلر همپوشانی دارد.
Firebase Security Rules همچنین میتوانند از احراز Authentication برای اعطای مجوزهای مبتنی بر کاربر استفاده کنند و شرایطی که تعیین میکنید میتوانند بسیار ابتدایی یا فوقالعاده پیچیده باشند. قبل از شروع به نوشتن Rules درباره زبان و رفتار Rules بیشتر بدانید.
مسیر پیادهسازی
| ادغام SDK های محصول | برای برنامه خود، Cloud Firestore ، Cloud Storage یا Realtime Database راهاندازی کنید. | |
| Firebase Security Rules خود را بنویسید | درباره نحوه عملکرد Rules و تنظیم برخی از Rules اساسی بیشتر بدانید | |
| Firebase Security Rules خود را آزمایش کنید | از شبیهسازهای Realtime Database و Cloud Firestore برای آزمایش رفتار برنامه خود و اعتبارسنجی قوانین خود قبل از استقرار آنها در محیط عملیاتی استفاده کنید. | |
| Firebase Security Rules خود را مستقر کنید | از کنسول Firebase یا Firebase CLI برای استقرار قوانین خود در محیط عملیاتی استفاده کنید. |
مراحل بعدی
- زبان Firebase Security Rules را درک کنید .
- درباره نحوه عملکرد Firebase Security Rules بیشتر بدانید.
- اشتباهات رایجی که باید از آنها اجتناب کنید را بررسی کنید.