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

برای 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 زبان و رفتار بیشتر بدانید.

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

ادغام کیت‌های توسعه نرم‌افزار محصول ‫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 برای استقرار قوانین خود در مرحله تولید استفاده کنید.

مراحل بعدی