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

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

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

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

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

پیش‌نیازها

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

محدودیت‌ها

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

  • Gemini در Firebase قادر به ایجاد Firebase Security Rules نیست. از یک دستیار هوش مصنوعی جایگزین، مانند Gemini CLI استفاده کنید.
  • این اعلان برای تولید Firebase Security Rules برای Cloud Firestore و Cloud Storage for Firebase طراحی شده است. هنوز قادر به تولید Rules برای Firebase Realtime Database نیست.
  • Firebase Security Rules هنگام دسترسی به پایگاه داده یا باکت شما از یک سرور یا محیط بک‌اند دیگر، مانند استفاده از Firebase Admin SDK فراخوانی نمی‌شوند. اگر از Admin SDK استفاده می‌کنید، مسئولیت مدیریت مجوزها و اعتبارسنجی داده‌ها در کد بک‌اند بر عهده شماست.

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

  1. برای تولید قوانین و تست‌های خود، از افزونه آزمایشی Gemini CLI برای Firebase Security Rules استفاده کنید.

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

    برای نصب و استفاده از افزونه:

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

      gemini extensions install https://github.com/firebase/snippets-rules
      
    2. Gemini CLI را باز کنید.

      gemini
      
    1. از ریشه پروژه خود، افزونه را اجرا کنید تا قوانینی برای Cloud Firestore ایجاد شود:

      /firebase-rules:firestore Generate rules using PROJECT ID PROJECT_ID
      

      یا برای Cloud Storage قوانینی ایجاد کنید:

      /firebase-rules:storage Generate rules using PROJECT ID PROJECT_ID and BUCKET NAME BUCKET_NAME
      

    این افزونه یک دایرکتوری rules_test برای Cloud Firestore یا یک دایرکتوری storage_rules_test برای Cloud Storage در ریشه پروژه شما ایجاد می‌کند. این دایرکتوری جدید شامل فایل .rules تولید شده به همراه یک پروژه Node.js با تست‌های واحد است.

  2. بررسی اعتبارسنجی قوانین و نتایج آزمایش:

    • اعتبارسنجی نحوی - پس از تولید قوانین، Gemini CLI به طور خودکار نحو را با استفاده از دستور firebase_validate_security_rules از سرور Firebase MCP اعتبارسنجی می‌کند.
    • تست‌های واحد - پس از اعتبارسنجی سینتکس، Gemini CLI تلاش می‌کند تا تست‌های واحد تولید شده را با استفاده از Firebase Local Emulator Suite اجرا کند. برای اجرای تست‌ها، باید Firebase Local Emulator Suite در یک ترمینال جداگانه اجرا کنید.

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

    *   Instruct Gemini CLI to run tests:
        ```none
        Firebase Emulator Suite is running in a separate terminal. Please
        execute the tests.
        ```
    *   Run tests manually by following the instructions in the `README.md`
        file in the `rules_test` or `storage_rules_test` directory.
    
  3. وقتی از نتیجه‌ی Rules تولید شده راضی بودید، از دستور Firebase CLI زیر برای استقرار Rules استفاده کنید.

    Cloud Firestore

    firebase deploy --only firestore:rules

    Cloud Storage

    firebase deploy --only storage

منابع اضافی

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