درخواست هوش مصنوعی: نوشتن قوانین امنیتی فایربیس

این اعلان می‌تواند به دستیار هوش مصنوعی شما (مانند Gemini CLI ) کمک کند تا Firebase Security Rules برای برنامه شما تولید و اصلاح کند. می‌توانید از این اعلان برای تهیه پیش‌نویس Security Rules برای موارد استفاده رایج، مانند اعطای دسترسی خاص به کاربر، پیاده‌سازی مجوزهای مبتنی بر نقش و اعتبارسنجی داده‌ها استفاده کنید.

این دستورالعمل بر ایجاد Security Rules برای موارد زیر تمرکز دارد:

  • Cloud Firestore : مجموعه‌ها و اسناد را بر اساس منطق برنامه خود ایمن کنید.
  • Cloud Storage for Firebase : مجوزهای دسترسی برای فایل‌های ذخیره شده خود را اعتبارسنجی کنید.

استفاده از این اعلان می‌تواند به شما در شروع یک وضعیت امنیتی قوی کمک کند، اما همیشه باید Security Rules خود را قبل از استقرار در محیط عملیاتی به طور کامل آزمایش کنید. برای اطلاعات بیشتر در مورد آزمایش Security Rules ، به بخش «شروع با Firebase Security Rules : آزمایش Security Rules خود» مراجعه کنید.

پیش‌نیازها

  • با بهترین شیوه‌های Firebase Security Rules آشنا شوید.
  • برای اجرای تست‌های واحد برای Firebase Security Rules و استفاده از Firebase Local Emulator Suite ، Node.js و Firebase CLI را نصب کنید. برای دستورالعمل‌های کامل، به Install, configure, and integration Firebase Local Emulator Suite مراجعه کنید.
  • توصیه می‌شود: اگر هنوز این کار را نکرده‌اید، Gemini CLI را نصب کنید . دستورالعمل‌های زیر نحوه نصب و استفاده از افزونه Firebase برای Gemini CLI را برای تولید Security Rules توضیح می‌دهند. اگر ترجیح می‌دهید از دستیار هوش مصنوعی دیگری استفاده کنید، می‌توانید دستورالعمل مربوط به Cloud Firestore یا Cloud Storage for Firebase را از مخزن firebase-tools کپی کرده و در دستیار هوش مصنوعی انتخابی خود قرار دهید.
  • افزونه Firebase برای رابط Gemini CLI به سرور Firebase MCP متصل می‌شود تا به اعلان‌هایی که Firebase Security Rules را تولید و تأیید می‌کنند دسترسی پیدا کند و به آزمایش و استقرار Security Rules کمک کند. قبل از استفاده از افزونه برای تولید Firebase Security Rules ، سرور Firebase MCP را نصب کنید .

محدودیت‌ها

ما به طور فعال در حال بهبود این تجربه هستیم، بنابراین این لیست محدودیت‌ها ممکن است تغییر کند. برای به‌روزرسانی‌ها مرتباً به ما سر بزنید.

  • این اعلان برای تولید Firebase Security Rules برای Cloud Firestore و Cloud Storage for Firebase طراحی شده است. هنوز قادر به تولید Security Rules برای Firebase Realtime Database نیست.

  • Firebase Security Rules هنگام دسترسی به پایگاه داده یا باکت شما از یک سرور یا محیط بک‌اند دیگر، مانند استفاده از Firebase Admin SDK فراخوانی نمی‌شوند. اگر از Admin SDK استفاده می‌کنید، مسئولیت مدیریت مجوزها و اعتبارسنجی داده‌ها در کد بک‌اند بر عهده شماست.

  • Gemini در Firebase در کنسول Firebase قادر به ایجاد Firebase Security Rules نیست، حتی هنگام استفاده از این اعلان. در عوض، از یک دستیار هوش مصنوعی جایگزین که به پایگاه کد شما دسترسی دارد، مانند Gemini CLI (که در این صفحه توضیح داده شده است) استفاده کنید.

از دستور العمل استفاده کنید

این اعلان از طریق قابلیت Security Rules در افزونه Firebase برای Gemini CLI در دسترس است تا Security Rules و تست‌های شما را تولید کند. این افزونه کد منبع شما را تجزیه و تحلیل می‌کند تا به شناسایی طرحواره‌های داده و الگوهای دسترسی برای Cloud Firestore و Cloud Storage کمک کند. این افزونه برای تهیه پیش‌نویس Security Rules بر اساس اصل حداقل امتیاز طراحی شده است و تلاش می‌کند تا از طریق شبیه‌سازی‌های "حمله" تکراری، آسیب‌پذیری‌ها را کشف کند. برای کمک به تأیید نهایی، یک مجموعه تست واحد اولیه با استفاده از @firebase/rules-unit-testing ارائه می‌دهد که به شما امکان می‌دهد منطق امنیتی خود را به صورت محلی با استفاده از Firebase Local Emulator Suite تأیید کنید.

استفاده از این افزونه مستلزم سه مرحله است که در این بخش توضیح داده شده است:

  1. Security Rules خود را ایجاد کنید .

  2. اعتبارسنجی Security Rules و نتایج آزمایش را بررسی کنید .

  3. Security Rules در پروژه Firebase خود اعمال کنید .

مرحله ۱ : ایجاد Security Rules

افزونه را نصب و اجرا کنید:

  1. افزونه Firebase را برای Gemini CLI نصب کنید:

    gemini extensions install https://github.com/gemini-cli-extensions/firebase
  2. اجرای Gemini CLI :

    gemini
  3. از ریشه پروژه خود، افزونه را اجرا کنید تا Security Rules برای Cloud Firestore یا Cloud Storage ایجاد شود:

    • ایجاد Security Rules برای Cloud Firestore :

      /firestore:generate_security_rules

      در دایرکتوری والد، این افزونه یک فایل firestore.rules و یک دایرکتوری جدید security_rules_test_firestore ایجاد می‌کند که شامل یک پروژه Node.js با تست‌های واحد برای Security Rules تولید شده است.

    • ایجاد Security Rules برای Cloud Storage for Firebase :

      /storage:generate_security_rules

      در دایرکتوری والد، این افزونه یک فایل storage.rules و یک دایرکتوری جدید security_rules_test_storage ایجاد می‌کند که شامل یک پروژه Node.js با تست‌های واحد برای Security Rules تولید شده است.

مرحله ۲ : بررسی اعتبارسنجی Security Rules و نتایج آزمایش

  1. مطمئن شوید که موارد زیر توسط دستیار هوش مصنوعی شما انجام می‌شود. پس از اجرای افزونه، باید خلاصه‌ای تولید شده را دریافت کنید.

    • اعتبارسنجی سینتکس : پس از تولید Security Rules ، Gemini CLI به طور خودکار سینتکس را با استفاده از دستور firebase_validate_security_rules از سرور Firebase MCP اعتبارسنجی می‌کند.

    • تست‌های واحد : پس از اعتبارسنجی سینتکس، Gemini CLI تلاش می‌کند تا تست‌های واحد تولید شده را با استفاده از Firebase Local Emulator Suite اجرا کند.

  2. اگر تست‌ها به طور خودکار اجرا نشدند، Firebase Local Emulator Suite در یک ترمینال جداگانه اجرا کنید ، سپس از یکی از گزینه‌های زیر برای اجرای تست‌ها استفاده کنید:

    • گزینه ۱: به Gemini CLI دستور دهید تا تست‌ها را اجرا کند:

      Firebase Emulator Suite is running in a separate terminal. Please execute the tests.
      
    • گزینه ۲: تست‌ها را به صورت دستی و با دنبال کردن دستورالعمل‌های موجود در فایل README.md در دایرکتوری rules_test یا storage_rules_test اجرا کنید.

مرحله 3 : Security Rules در پروژه Firebase خود اعمال کنید

وقتی از نتیجه‌ی Security Rules تولید شده راضی بودید، از دستورات Firebase CLI زیر برای اعمال Security Rules به پروژه‌ی Firebase خود استفاده کنید:

  • Cloud Firestore

    firebase deploy --only firestore:rules
  • Cloud Storage for Firebase

    firebase deploy --only storage

منابع اضافی

  • برای کمک بیشتر در مورد وضعیت امنیتی خود، می‌توانید از افزونه امنیتی Gemini CLI نیز استفاده کنید، یک افزونه متن‌باز که تغییرات کد را برای شناسایی خطرات و آسیب‌پذیری‌های امنیتی تجزیه و تحلیل می‌کند.