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 در محصولات Firebase دارای یک جزء تطبیق مسیر و یک عبارت شرطی هستند که اجازه دسترسی خواندن یا نوشتن را می دهد. باید برای هر محصول Firebase که در برنامه خود استفاده می کنید، 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 بیشتر بدانید.
- اشتباهات رایجی که باید از آنها اجتناب کنید را بررسی کنید.