Prompt AI: scrivi regole di sicurezza Firebase

Questo prompt può aiutare l'assistente AI (come Gemini CLI) a generare e perfezionare Firebase Security Rules per la tua app. Puoi utilizzare il prompt per creare una bozza di Security Rules per casi d'uso comuni, come la concessione di un accesso specifico per l'utente, l'implementazione di autorizzazioni basate sui ruoli e la convalida dei dati.

Questo prompt si concentra sulla generazione di Security Rules per:

  • Cloud Firestore: proteggi raccolte e documenti in base alla logica della tua app.
  • Cloud Storage for Firebase: valida le autorizzazioni di accesso per i file archiviati.

L'utilizzo di questo prompt può aiutarti a iniziare con una solida postura di sicurezza, ma devi sempre testare a fondo Security Rules prima di eseguire il deployment in produzione. Per maggiori informazioni sul test di Security Rules, consulta Guida introduttiva a Firebase Security Rules: testa il tuo Security Rules.

Prerequisiti

Limitazioni

Stiamo migliorando attivamente questa esperienza, quindi questo elenco di limitazioni potrebbe cambiare. Controlla spesso per verificare la presenza di aggiornamenti.

  • Il prompt è progettato per generare Firebase Security Rules per Cloud Firestore e Cloud Storage for Firebase. Non è ancora in grado di generare Security Rules per Firebase Realtime Database.

  • Firebase Security Rules non vengono chiamate quando si accede al database o al bucket da un server o da un altro ambiente di backend, ad esempio quando si utilizza Firebase Admin SDK. Se utilizzi Admin SDK, sei responsabile della gestione dell'autorizzazione e della convalida dei dati nel codice backend.

  • Gemini in Firebase all'interno della console Firebase non è in grado di generare Firebase Security Rules, anche quando utilizzi questo prompt. Utilizza invece un assistente AI alternativo che abbia accesso alla tua base di codice, ad esempio Gemini CLI (descritto in questa pagina).

Utilizzare il prompt

Questo prompt è disponibile tramite la funzionalità Security Rules all'interno dell'estensione Firebase per Gemini CLI per generare Security Rules e test. Questa estensione analizza il codice sorgente per aiutarti a identificare gli schemi di dati e i pattern di accesso per Cloud Firestore e Cloud Storage. È progettato per creare Security Rules in base al principio del privilegio minimo e tenta di scoprire le vulnerabilità tramite simulazioni iterative di "attacco". Per facilitare la verifica finale, fornisce una suite di test unitari iniziale utilizzando @firebase/rules-unit-testing, che ti consente di verificare la logica di sicurezza localmente utilizzando Firebase Local Emulator Suite.

L'utilizzo di questa estensione richiede tre passaggi descritti in questa sezione:

  1. Genera il tuo Security Rules e i tuoi test.

  2. Esamina i Security Rulesrisultati di convalida e test.

  3. Esegui il deployment di Security Rules nel tuo progetto Firebase.

Passaggio 1: genera Security Rules e test

Installa ed esegui l'estensione:

  1. Installa l'estensione Firebase per Gemini CLI:

    gemini extensions install https://github.com/gemini-cli-extensions/firebase
  2. Inizio Gemini CLI:

    gemini
  3. Dalla radice del progetto, esegui l'estensione per generare Security Rules per Cloud Firestore o Cloud Storage:

    • Genera Security Rules per Cloud Firestore:

      /firestore:generate_security_rules

      Nella directory principale, l'estensione crea un file firestore.rules e una nuova directory security_rules_test_firestore che contiene un progetto Node.js con test unitari per il file Security Rules generato.

    • Genera Security Rules per Cloud Storage for Firebase:

      /storage:generate_security_rules

      Nella directory principale, l'estensione crea un file storage.rules e una nuova directory security_rules_test_storage che contiene un progetto Node.js con test unitari per il Security Rules generato.

Passaggio 2: esamina i risultati del test e della convalida Security Rules

  1. Assicurati che le seguenti operazioni vengano eseguite dall'assistente AI. Al termine dell'esecuzione dell'estensione, riceverai un riepilogo generato.

    • Convalida della sintassi: dopo aver generato Security Rules, Gemini CLI convalida automaticamente la sintassi utilizzando il comando firebase_validate_security_rules dal server Firebase MCP.

    • Test delle unità: dopo aver convalidato la sintassi, Gemini CLI tenta di eseguire i test delle unità generati utilizzando Firebase Local Emulator Suite.

  2. Se i test non vengono eseguiti automaticamente, avvia Firebase Local Emulator Suite in un terminale separato, quindi utilizza una delle seguenti opzioni per eseguire i test:

    • Opzione 1: chiedi a Gemini CLI di eseguire i test:

      Firebase Emulator Suite is running in a separate terminal. Please execute the tests.
      
    • Opzione 2: esegui i test manualmente seguendo le istruzioni riportate nel file README.md nella directory rules_test o storage_rules_test.

Passaggio 3: esegui il deployment di Security Rules nel tuo progetto Firebase

Quando sei soddisfatto del risultato del Security Rules generato, utilizza i seguenti comandi dell'interfaccia a riga di comando Firebase per eseguire il deployment del Security Rules nel tuo progetto Firebase:

  • Cloud Firestore

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

    firebase deploy --only storage

Risorse aggiuntive

  • Per ulteriore assistenza con la tua strategia di sicurezza, puoi anche utilizzare l'estensione di sicurezza per Gemini CLI, un'estensione open source che analizza le modifiche al codice per identificare rischi e vulnerabilità di sicurezza.