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