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

مراحل بعدی