एआई प्रॉम्प्ट: 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 की टेस्टिंग करना लेख पढ़ें.

ज़रूरी शर्तें

सीमाएं

हम इस सुविधा को बेहतर बनाने के लिए लगातार काम कर रहे हैं. इसलिए, इस सूची में दी गई सीमाओं में बदलाव हो सकता है. अपडेट के लिए, समय-समय पर यहां देखते रहें.

  • इस प्रॉम्प्ट को Cloud Firestore और Cloud Storage for Firebase के लिए Firebase Security Rules जनरेट करने के लिए डिज़ाइन किया गया है. यह फ़िलहाल Firebase Realtime Database के लिए Security Rules जनरेट नहीं कर सकता.

  • Firebase Security Rules को तब कॉल नहीं किया जाता, जब सर्वर या अन्य बैकएंड एनवायरमेंट से आपके डेटाबेस या बकेट को ऐक्सेस किया जाता है. जैसे, Firebase Admin SDK का इस्तेमाल करते समय. Admin SDK का इस्तेमाल करने पर, आपको अपने बैकएंड कोड में अनुमति और डेटा की पुष्टि को मैनेज करना होगा.

  • Firebase कंसोल में मौजूद Firebase में Gemini, Firebase Security Rules जनरेट नहीं कर सकता. भले ही, इस प्रॉम्प्ट का इस्तेमाल किया जा रहा हो. इसके बजाय, किसी अन्य एआई असिस्टेंट का इस्तेमाल करें जिसके पास आपके कोडबेस का ऐक्सेस हो. जैसे, Gemini CLI (इसके बारे में इस पेज पर बताया गया है).

प्रॉम्प्ट का इस्तेमाल करना

यह प्रॉम्प्ट, Gemini CLI एक्सटेंशन से Firebase Security Rules के लिए उपलब्ध है. इसकी मदद से, Security Rules और टेस्ट जनरेट किए जा सकते हैं. यह एक्सटेंशन आपके सोर्स कोड का विश्लेषण करता है, ताकि Cloud Firestore और Cloud Storage के लिए डेटा स्कीमा और ऐक्सेस पैटर्न की पहचान की जा सके. इसे "कम से कम अधिकारों" के सिद्धांत के आधार पर Security Rules को ड्राफ़्ट करने के लिए डिज़ाइन किया गया है. साथ ही, यह बार-बार "हमला" करने के सिम्युलेशन के ज़रिए, कमज़ोरियों का पता लगाने की कोशिश करता है. यह @firebase/rules-unit-testing का इस्तेमाल करके, शुरुआती यूनिट टेस्ट सुइट उपलब्ध कराता है. इससे पुष्टि करने में मदद मिलती है. इसकी मदद से, @firebase/rules-unit-testing का इस्तेमाल करके, सुरक्षा से जुड़े लॉजिक की पुष्टि स्थानीय तौर पर की जा सकती है.Firebase Local Emulator Suite

इस एक्सटेंशन का इस्तेमाल करने के लिए, आपको तीन चरण पूरे करने होंगे. इनके बारे में इस सेक्शन में बताया गया है:

  1. अपने Security Rules और टेस्ट जनरेट करें.

  2. Security Rulesपुष्टि और जांच के नतीजों की समीक्षा करें.

  3. Security Rules को अपने Firebase प्रोजेक्ट में डिप्लॉय करें.

पहला चरण: Security Rules और टेस्ट जनरेट करना

एक्सटेंशन इंस्टॉल करें और उसे चलाएं:

  1. Gemini CLI एक्सटेंशन इंस्टॉल करें:

    gemini extensions install https://github.com/firebase/snippets-rules
  2. शुरू होने की तारीख Gemini CLI:

    gemini
  3. अपने प्रोजेक्ट के रूट से एक्सटेंशन चलाकर, Security Rules जनरेट करें. इसके लिए, Cloud Firestore या Cloud Storage में से किसी एक का इस्तेमाल करें:

    • Cloud Firestore के लिए Security Rules जनरेट करें:

      /firebase-rules:firestore Generate Firebase Security Rules using PROJECT ID PROJECT_ID

      पेरेंट डायरेक्ट्री में, एक्सटेंशन एक firestore.rules फ़ाइल और एक नई rules_test डायरेक्ट्री बनाता है. इस डायरेक्ट्री में, जनरेट किए गए Security Rules के लिए यूनिट टेस्ट के साथ Node.js प्रोजेक्ट होता है.

    • Cloud Storage for Firebase के लिए Security Rules जनरेट करें:

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

      पैरंट डायरेक्ट्री में, एक्सटेंशन एक  फ़ाइल और एक नई storage_rules_test डायरेक्ट्री बनाता है. इस डायरेक्ट्री में, जनरेट किए गए Security Rules के लिए यूनिट टेस्ट के साथ Node.js प्रोजेक्ट होता है.storage.rules

दूसरा चरण: Security Rules की पुष्टि और जांच के नतीजों की समीक्षा करना

  1. पक्का करें कि एआई असिस्टेंट ने ये काम किए हों. एक्सटेंशन के चलने के बाद, आपको जनरेट की गई खास जानकारी मिलनी चाहिए.

    • सिंटैक्स की पुष्टि करना: Security Rules जनरेट करने के बाद, Gemini CLI Firebase MCP सर्वर से firebase_validate_security_rules कमांड का इस्तेमाल करके, सिंटैक्स की पुष्टि अपने-आप करता है.

    • यूनिट टेस्ट: सिंटैक्स की पुष्टि करने के बाद, 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.
      
    • दूसरा विकल्प: rules_test या storage_rules_test डायरेक्ट्री में मौजूद README.md फ़ाइल में दिए गए निर्देशों का पालन करके, मैन्युअल तरीके से टेस्ट चलाएं.

तीसरा चरण: अपने Firebase प्रोजेक्ट में Security Rules डिप्लॉय करें

जनरेट किए गए Security Rules के नतीजे से संतुष्ट होने पर, अपने Firebase प्रोजेक्ट में Security Rules को डिप्लॉय करने के लिए, Firebase CLI की इन कमांड का इस्तेमाल करें:

  • Cloud Firestore

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

    firebase deploy --only storage

अन्य संसाधन

  • सुरक्षा से जुड़ी अपनी स्थिति को बेहतर बनाने के लिए, Gemini CLI के लिए सुरक्षा एक्सटेंशन का इस्तेमाल किया जा सकता है. यह एक ओपन-सोर्स एक्सटेंशन है. यह कोड में हुए बदलावों का विश्लेषण करके, सुरक्षा से जुड़े जोखिमों और कमज़ोरियों का पता लगाता है.