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