KI-Prompt: Firebase-Sicherheitsregeln schreiben

Mit diesem Prompt kann Ihr KI-Assistent, z. B. Gemini CLI, Firebase Security Rules für Ihre App generieren und optimieren. Sie können den Prompt verwenden, um Rules für gängige Anwendungsfälle zu entwerfen, z. B. zum Gewähren nutzerspezifischen Zugriffs, zum Implementieren rollenbasierter Berechtigungen und zum Validieren von Daten.

Dieser Prompt konzentriert sich auf die Generierung von Rules für:

  • Cloud Firestore: Sammlungen und Dokumente basierend auf der Logik Ihrer App sichern.
  • Cloud Storage for Firebase: Zugriffsberechtigungen für Ihre gespeicherten Dateien validieren.

Dieser Prompt kann Ihnen helfen, mit einer starken Sicherheitslage zu beginnen. Sie sollten Ihre Rules jedoch immer gründlich testen, bevor Sie sie in der Produktion bereitstellen. Weitere Informationen zum Testen von Rules finden Sie unter Erste Schritte mit Firebase Security Rules: Regeln testen.

Vorbereitung

Beschränkungen

Wir arbeiten aktiv an der Verbesserung dieser Funktion. Daher kann sich diese Liste der Einschränkungen ändern. Weitere Updates folgen.

  • Gemini in Firebase kann Firebase Security Rules nicht generieren. Verwenden Sie einen alternativen KI-Assistenten wie Gemini CLI.
  • Der Prompt ist darauf ausgelegt, Firebase Security Rules für Cloud Firestore und Cloud Storage for Firebase zu generieren. Rules für Firebase Realtime Database können noch nicht generiert werden.
  • Firebase Security Rules werden nicht aufgerufen, wenn Sie von einem Server oder einer anderen Backend-Umgebung auf Ihre Datenbank oder Ihren Bucket zugreifen, z. B. wenn Sie die Firebase Admin SDK verwenden. Wenn Sie die Admin SDK verwenden, sind Sie für die Verwaltung der Autorisierung und die Datenvalidierung in Ihrem Backend-Code verantwortlich.

Prompt verwenden

  1. Verwenden Sie die experimentelle Gemini CLI-Erweiterung für Firebase Security Rules, um Ihre Regeln und Tests zu generieren.

    Diese Erweiterung analysiert Ihren Quellcode, um Datenschemas und Zugriffsmuster für Cloud Firestore und Cloud Storage zu ermitteln. Es wurde entwickelt, um Rules auf Grundlage des Prinzips der geringsten Berechtigung zu erstellen und durch iterative „Angriffssimulationen“ Sicherheitslücken aufzudecken. Zur Unterstützung bei der endgültigen Überprüfung wird eine Start-Unit-Testsuite mit @firebase/rules-unit-testing bereitgestellt, mit der Sie Ihre Sicherheitslogik lokal mit der Firebase Local Emulator Suite überprüfen können.

    So installieren und verwenden Sie die Erweiterung:

    1. Installieren Sie die Erweiterung Gemini CLI:

      gemini extensions install https://github.com/firebase/snippets-rules
      
    2. Öffnen Sie Gemini CLI.

      gemini
      
    1. Führen Sie die Erweiterung im Stammverzeichnis Ihres Projekts aus, um Regeln für Cloud Firestore zu generieren:

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

      Oder Regeln für Cloud Storage generieren:

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

    Die Erweiterung erstellt im Stammverzeichnis Ihres Projekts ein rules_test-Verzeichnis für Cloud Firestore oder ein storage_rules_test-Verzeichnis für Cloud Storage. Dieses neue Verzeichnis enthält die generierte .rules-Datei sowie ein Node.js-Projekt mit Unittests.

  2. Regelvalidierung und Testergebnisse prüfen:

    • Syntaxvalidierung: Nach dem Generieren von Regeln validiert Gemini CLI die Syntax automatisch mit dem Befehl firebase_validate_security_rules vom Firebase MCP-Server.
    • Unittests: Nach der Validierung der Syntax versucht Gemini CLI, die generierten Unittests mit Firebase Local Emulator Suite auszuführen. Damit die Tests ausgeführt werden, müssen Sie Firebase Local Emulator Suite in einem separaten Terminal ausführen.

    Wenn Tests nicht automatisch ausgeführt werden, starten Sie Firebase Local Emulator Suite in einem separaten Terminal und verwenden Sie dann eine der folgenden Optionen, um die Tests auszuführen:

    *   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. Wenn Sie mit dem Ergebnis des generierten Rules zufrieden sind, verwenden Sie den folgenden Firebase-CLI-Befehl, um das Rules bereitzustellen.

    Cloud Firestore

    firebase deploy --only firestore:rules

    Cloud Storage

    firebase deploy --only storage

Zusätzliche Ressourcen

  • Wenn Sie zusätzliche Unterstützung bei der Verbesserung Ihres Sicherheitsstatus benötigen, können Sie auch die Sicherheitserweiterung für Gemini CLI verwenden. Diese Open-Source-Erweiterung analysiert Codeänderungen, um Sicherheitsrisiken und ‑lücken zu erkennen.