Yapay Zeka İstemleri: Firebase Güvenlik Kuralları Yazma

Bu istem, Gemini CLI gibi yapay zeka asistanınızın uygulamanız için Firebase Security Rules oluşturmasına ve iyileştirmesine yardımcı olabilir. İstem, kullanıcıya özel erişim verme, role dayalı izinler uygulama ve verileri doğrulama gibi yaygın kullanım alanları için Rules taslağı oluşturmak üzere kullanılabilir.

Bu istem, Rules oluşturmaya odaklanır:

  • Cloud Firestore: Uygulamanızın mantığına göre koleksiyonları ve dokümanları güvenli hale getirin.
  • Cloud Storage for Firebase: Depolanan dosyalarınızın erişim izinlerini doğrulayın.

Bu istemi kullanmak, güçlü bir güvenlik duruşuyla başlamanıza yardımcı olabilir ancak üretime dağıtmadan önce Rules öğenizi her zaman kapsamlı bir şekilde test etmeniz gerekir. Rules test etme hakkında daha fazla bilgi için Firebase Security Rules'ı kullanmaya başlama: Kurallarınızı test etme başlıklı makaleyi inceleyin.

Ön koşullar

Sınırlamalar

Bu deneyimi iyileştirmek için çalışmalarımız devam ediyor. Bu nedenle, sınırlamaların listesi değişebilir. Güncellemeler için sık sık tekrar kontrol edin.

  • Firebase içindeki Gemini, Firebase Security Rules oluşturamıyor. Gemini CLI gibi alternatif bir yapay zeka asistanı kullanın.
  • İstem, Cloud Firestore ve Cloud Storage for Firebase için Firebase Security Rules oluşturmak üzere tasarlanmıştır. Henüz Firebase Realtime Database için Rules oluşturamıyor.
  • Firebase Security Rules, veritabanınıza veya paketinize bir sunucudan ya da başka bir arka uç ortamından erişilirken (ör. Firebase Admin SDK kullanılırken) çağrılmaz. Admin SDK kullanıyorsanız arka uç kodunuzda yetkilendirme ve veri doğrulama işlemlerini yönetmekten siz sorumlusunuz.

İstemi kullanma

  1. Kurallarınızı ve testlerinizi oluşturmak için Firebase Security Rules'e yönelik deneysel Gemini CLI uzantısını kullanın.

    Bu uzantı, Cloud Firestore ve Cloud Storage için veri şemalarını ve erişim kalıplarını belirlemenize yardımcı olmak amacıyla kaynak kodunuzu analiz eder. En az ayrıcalık ilkesine göre Rules oluşturmak üzere tasarlanmıştır ve yinelemeli "saldırı" simülasyonları aracılığıyla güvenlik açıklarını ortaya çıkarmaya çalışır. Son doğrulamaya yardımcı olmak için @firebase/rules-unit-testing kullanarak bir başlangıç birim testi paketi sağlar. Bu sayede, Firebase Local Emulator Suite'i kullanarak güvenlik mantığınızı yerel olarak doğrulayabilirsiniz.

    Uzantıyı yüklemek ve kullanmak için:

    1. Gemini CLI uzantısını yükleyin:

      gemini extensions install https://github.com/firebase/snippets-rules
      
    2. Gemini CLI adlı görüşmeyi açın.

      gemini
      
    1. Projenizin kökünden uzantıyı çalıştırarak Cloud Firestore için kurallar oluşturun:

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

      Dilerseniz Cloud Storage için kurallar oluşturabilirsiniz:

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

    Uzantı, proje kökünüzde Cloud Firestore için rules_test dizini veya Cloud Storage için storage_rules_test dizini oluşturur. Bu yeni dizinde, oluşturulan .rules dosyası ve birim testleri içeren bir Node.js projesi yer alır.

  2. Kural doğrulama ve test sonuçlarını inceleyin:

    • Söz dizimi doğrulama: Kurallar oluşturulduktan sonra Gemini CLI, Firebase MCP sunucusundan gelen firebase_validate_security_rules komutunu kullanarak söz dizimini otomatik olarak doğrular.
    • Birim testleri: Söz dizimi doğrulandıktan sonra Gemini CLI, Firebase Local Emulator Suite kullanarak oluşturulan birim testlerini çalıştırmayı dener. Testlerin çalışması için Firebase Local Emulator Suite komutunu ayrı bir terminalde çalıştırmanız gerekir.

    Testler otomatik olarak çalışmıyorsa Firebase Local Emulator Suite'ı ayrı bir terminalde başlatın, ardından testleri çalıştırmak için aşağıdaki seçeneklerden birini kullanın:

    *   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. Oluşturulan Rules sonucundan memnun olduğunuzda Rules dağıtmak için aşağıdaki Firebase CLI komutunu kullanın.

    Cloud Firestore

    firebase deploy --only firestore:rules

    Cloud Storage

    firebase deploy --only storage

Ek kaynaklar

  • Güvenlik durumunuzla ilgili ek yardım için Gemini CLI için güvenlik uzantısını da kullanabilirsiniz. Bu açık kaynaklı uzantı, güvenlik risklerini ve güvenlik açıklarını belirlemek için kod değişikliklerini analiz eder.