Catch up on everthing we announced at this year's Firebase Summit. Learn more

قوانین امنیتی Firebase

از قوانین امنیتی انعطاف پذیر و قابل توسعه Firebase ما برای ایمن سازی داده های خود در Cloud Firestore ، پایگاه داده Firebase Realtime Database و Cloud Storage استفاده کنید.

قوانین امنیتی Firebase بین داده های شما و کاربران مخرب قرار دارد. می توانید قوانین ساده یا پیچیده ای بنویسید که از داده های برنامه شما در سطح جزئیات مورد نیاز برنامه خاص شما محافظت کند.

قوانین امنیتی Firebase از زبانهای پیکربندی گسترده و انعطاف پذیر برای تعیین داده هایی که کاربران شما می توانند برای پایگاه داده Realtime ، Cloud Firestore و Cloud Storage به آن دسترسی داشته باشند ، استفاده می کند. قوانین پایگاه داده Realtime Firebase از JSON در تعاریف قوانین استفاده می کند ، در حالی که قوانین امنیتی Cloud Firestore و قوانین امنیتی Firebase برای ذخیره سازی ابر از یک زبان منحصر به فرد ساخته شده است تا ساختارهای پیچیده تری را در بر گیرد.

درباره نحوه تنظیم قوانین برای محصولات خاص Firebase که در برنامه خود استفاده می کنید و نحوه تفاوت قوانین در محصولات Firebase بیشتر بیاموزید.

قابلیت های کلیدی

انعطاف پذیری قوانین سفارشی بنویسید که برای ساختار و رفتار برنامه شما منطقی باشد. قوانین از زبان هایی استفاده می کنند که به شما امکان می دهد از داده های خود برای مجوز دسترسی استفاده کنید.
دانه دانه بودن قوانین شما می توانند به اندازه وسیع یا محدود به اندازه مورد نیاز شما باشند.
امنیت مستقل از آنجا که قوانین خارج از برنامه شما (در کنسول Firebase یا Firebase CLI) تعریف شده است ، سرویس گیرندگان مسئول اعمال امنیت نیستند ، اشکالات داده ها را به خطر نمی اندازند و داده های شما همیشه محافظت می شوند.

چطورکار می کنند؟

قوانین امنیتی Firebase با مطابقت یک الگو با مسیرهای پایگاه داده و سپس اعمال شرایط سفارشی برای دسترسی به داده ها در آن مسیرها اعمال می شود. همه قوانین موجود در محصولات Firebase دارای یک جزء منطبق با مسیر و یک بیانیه شرطی هستند که اجازه خواندن یا نوشتن را می دهد. باید برای هر محصول Firebase که در برنامه خود استفاده می کنید ، قوانین تعیین کنید.

برای Cloud Firestore و Cloud Storage ، قوانین از نحو زیر استفاده می کنند:

service <<name>> {
  // Match the resource path.
  match <<path>> {
    // Allow the request if the following conditions are true.
    allow <<methods>> : if <<condition>>
  }
}

برای پایگاه داده Realtime ، قوانین مبتنی بر JSON از نحو زیر استفاده می کنند:

{
  "rules": {
    "<<path>>": {
    // Allow the request if the condition for each method is true.
      ".read": <<condition>>,
      ".write": <<condition>>
    }
  }
}

قوانین به این صورت اعمال OR اظهارات، نه AND اظهارات. در نتیجه ، اگر قوانین متعددی با یک مسیر مطابقت داشته باشند و هر یک از شرایط مطابقت دسترسی را امکان پذیر کند ، قوانین دسترسی به داده های آن مسیر را اعطا می کند. بنابراین ، اگر یک قانون گسترده دسترسی به داده ها را مجاز می کند ، نمی توانید با یک قانون خاص محدود کنید. با این حال ، می توانید با اطمینان از عدم تداخل زیاد قوانین با یکدیگر ، از این مشکل جلوگیری کنید. پرچم قوانین Firebase Security در مسیرهای مطابقت شما به عنوان هشدارهای کامپایلر همپوشانی دارد.

قوانین امنیتی Firebase همچنین می تواند از احراز هویت برای اعطای مجوزهای مبتنی بر کاربر استفاده کند و شرایطی که تعیین کرده اید می تواند بسیار اساسی یا فوق العاده پیچیده باشد. اطلاعات بیشتر در مورد قوانین زبان و رفتار قبل از شروع به نوشتن قوانین.

مسیر پیاده سازی

SDK های محصول را ادغام کنید تنظیم ابر Firestore ، ابر ذخیره سازی ، و یا پایگاه بیدرنگ برای برنامه شما.
قوانین امنیتی Firebase خود را بنویسید اطلاعات بیشتر در مورد نحوه کار قوانین و راه اندازی برخی از قوانین اساسی
قوانین امنیتی Firebase خود را آزمایش کنید از شبیه سازهای پایگاه داده Realtime و Cloud Firestore برای آزمایش رفتار برنامه خود و تأیید قوانین خود قبل از استفاده از آنها در تولید استفاده کنید.
قوانین امنیتی Firebase خود را مستقر کنید از کنسول Firebase یا Firebase CLI برای استقرار قوانین خود در تولید استفاده کنید.

مراحل بعدی