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