طلب الذكاء الاصطناعي: كتابة قواعد أمان Firebase

يمكن أن يساعد هذا الطلب مساعد الذكاء الاصطناعي (مثل 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. للاطّلاع على التعليمات الكاملة، يُرجى الرجوع إلى مقالة تثبيت Firebase Local Emulator Suite وإعداده ودمجه.
  • ننصحك بما يلي: إذا لم يسبق لك ذلك، ثبِّت Gemini CLI. توضّح التعليمات التالية كيفية تثبيت إضافة Firebase لـ Gemini CLI واستخدامها من أجل إنشاء Security Rules. إذا كنت تفضّل استخدام مساعد آخر يعمل بالذكاء الاصطناعي، يمكنك نسخ الطلب ولصقه في Cloud Firestore أو Cloud Storage for Firebase من مستودع firebase-tools في المساعد الذي اخترته.
  • يرتبط امتداد Firebase الخاص بـ Gemini CLI بخادم MCP في Firebase للوصول إلى الطلبات التي تنشئ Firebase Security Rules وتتحقّق من صحتها، ويساعد في اختبار ونشر Security Rules. ثبِّت خادم MCP في Firebase قبل استخدام الإضافة لإنشاء Firebase Security Rules.

القيود

نحن نعمل بنشاط على تحسين هذه التجربة، لذا قد تتغيّر قائمة القيود هذه. يُرجى مراجعة هذه الصفحة بشكل متكرر للاطّلاع على آخر الأخبار.

  • تم تصميم الطلب لإنشاء 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.

الخطوة 1: إنشاء 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 الذي تم إنشاؤه.

الخطوة 2: مراجعة نتائج التحقّق من صحة Security Rules واختباره

  1. تأكَّد من أنّ مساعد الذكاء الاصطناعي ينفّذ ما يلي: من المفترض أن تتلقّى ملخّصًا من إنشاء الذكاء الاصطناعي بعد تشغيل الإضافة.

    • التحقّق من صحة البنية: بعد إنشاء Security Rules، تتحقّق Gemini CLI تلقائيًا من صحة البنية باستخدام الأمر firebase_validate_security_rules من خادم Firebase MCP.

    • اختبارات الوحدات: بعد التحقّق من صحة البنية، تحاول Gemini CLI تنفيذ اختبارات الوحدات التي تم إنشاؤها باستخدام Firebase Local Emulator Suite.

  2. إذا لم يتم تشغيل الاختبارات تلقائيًا، ابدأ Firebase Local Emulator Suite في نافذة طرفية منفصلة، ثم استخدِم أحد الخيارات التالية لتشغيل الاختبارات:

    • الخيار 1: توجيه Gemini CLI لإجراء الاختبارات:

      Firebase Emulator Suite is running in a separate terminal. Please execute the tests.
      
    • الخيار 2: تنفيذ الاختبارات يدويًا باتّباع التعليمات الواردة في ملف README.md في الدليل rules_test أو storage_rules_test

الخطوة 3: نشر Security Rules في مشروع Firebase

بعد الانتهاء من إنشاء Security Rules، استخدِم أوامر واجهة سطر الأوامر Firebase التالية لتفعيل Security Rules في مشروع Firebase:

  • Cloud Firestore

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

    firebase deploy --only storage

مراجع إضافية

  • للحصول على مساعدة إضافية بشأن مستوى الأمان، يمكنك أيضًا استخدام إضافة الأمان في Gemini CLI، وهي إضافة مفتوحة المصدر تحلّل تغييرات الرموز البرمجية لتحديد المخاطر المتعلقة بالأمان والثغرات الأمنية.