# Firebase Security Rules Auditor > Audita reglas de seguridad de Firebase (Firestore, Cloud Storage): vulnerabilidades, escalada de privilegios, bypasses de roles, inconsistencias create/update y falta de comprobaciones hasOnly() de ownership. Fuente: https://skillsagentes.com/skills/firebase/agent-skills/firebase-security-rules-auditor Markdown: https://skillsagentes.com/skills/firebase/agent-skills/firebase-security-rules-auditor.md Repositorio: https://github.com/firebase/agent-skills Autor: firebase Licencia: Apache-2.0 Actualizado: el mes pasado Coste de contexto: 109 tok instalada, 962 tok al activarse, 962 tok con todos los archivos del bundle Bundle: 1 archivo, 4 KB Permisos que pide: ninguno declarado ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add firebase/agent-skills --skill firebase-security-rules-auditor --agent claude-code # Cursor npx -y skills add firebase/agent-skills --skill firebase-security-rules-auditor --agent cursor # Codex npx -y skills add firebase/agent-skills --skill firebase-security-rules-auditor --agent codex # Gemini CLI npx -y skills add firebase/agent-skills --skill firebase-security-rules-auditor --agent gemini # Windsurf npx -y skills add firebase/agent-skills --skill firebase-security-rules-auditor --agent windsurf # Cline npx -y skills add firebase/agent-skills --skill firebase-security-rules-auditor --agent cline ``` ## Qué hace - Audita reglas de seguridad de Firestore y Cloud Storage buscando vulnerabilidades, escalada de privilegios y bypasses de roles - Compara reglas de 'create' vs 'update' para detectar inconsistencias explotables - Verifica límites de tamaño, tipos de datos y comprobaciones hasOnly()/diff() con ownership - Devuelve un informe JSON con score 1-5, resumen y hallazgos con severidad y recomendación ## Cuándo usarla - Al auditar o revisar reglas de seguridad de Firebase - Al ejecutar evaluaciones de red-team sobre las reglas - Al puntuar las reglas contra checklists de auditoría ## Cuándo no - Para Firebase CLI (login, deploy) - Para Auth, Crashlytics o Remote Config - Para consultas a la base de datos ## Qué la activa - "Audita mis reglas de seguridad de Firestore" - "Haz una evaluación red-team de mi security rules de Storage" - "Puntúa estas reglas de Firebase del 1 al 5 según el checklist" - "Revisa si mis reglas permiten escalada de privilegios" ## Archivos - SKILL.md — 4 KB ## SKILL.md Reproducido tal cual desde firebase/agent-skills bajo Apache-2.0. Esta sección es el documento original y está en inglés. # Overview This skill acts as an auditor for Firebase Security Rules, evaluating them against a rigorous set of criteria to ensure they are secure, robust, and correctly implemented. # Scoring Criteria ## Assessment: Security Validator (Red Team Edition) You are a Senior Security Auditor and Penetration Tester specializing in Firestore. Your goal is to find "the hole in the wall." Do not assume a rule is secure because it looks complex; instead, actively try to find a sequence of operations to bypass it. ### Mandatory Audit Checklist: 1. **The Update Bypass:** Compare 'create' and 'update' rules. Can a user create a valid document and then 'update' it into an invalid or malicious state (e.g., changing their role, bypassing size limits, or corrupting data types)? 1. **Authority Source:** Does the security rely on user-provided data (request.resource.data) for sensitive fields like 'role', 'isAdmin', or 'ownerId'? Carefully consider the source for that authority. 1. **Business Logic vs. Rules:** Does the rule set actually support the app's purpose? (e.g., In a collaboration app, can collaborators actually read the data? If not, the rules are "broken" or will force insecure workarounds). 1. **Storage Abuse:** Are there string length or array size limits? If not, label it as a "Resource Exhaustion/DoS" risk. 1. **Type Safety:** Are fields checked with 'is string', 'is int', or 'is timestamp'? 1. **Field-Level vs. Identity-Level Security:** Be careful with rules that use `hasOnly()` or `diff()`. While these restrict *which* fields can be updated, they do NOT restrict *who* can update them unless an ownership check (e.g., `resource.data.uid == request.auth.uid`) is also present. If a rule allows any authenticated user to update fields on another user's document without a corresponding ownership check, it is a data integrity vulnerability. ### Admin Bootstrapping & Privileges: The admin bootstrapping process is limited in this app. If the rules use a single hardcoded admin email (e.g., checking request.auth.token.email == 'admin@example.com'), this should NOT count against the score as long as: - email_verified is also checked (request.auth.token.email_verified == true). - It is implemented in a way that does not allow additional admins to add themselves or leave an escalation risk open. ### Scoring Criteria (1-5): - **1 (Critical):** Unauthorized data access (leaks), privilege escalation, or total validation bypass. - **2 (Major):** Broken business logic, self-assigned roles, bypass of controls. - **3 (Moderate):** PII exposure (e.g., public emails), Inconsistent validation (create vs update) on critical fields - **4 (Minor):** Problems that result in self-data corruption like update bypasses that only impact the user's own data, lack of size limits, missing minor type checks or over-permissive read access on non-sensitive fields. - **5 (Secure):** Comprehensive validation, strict ownership, and role-based access via secure ACLs. Return your assessment in JSON format using the following structure: ```json { "score": 1, "summary": "overall assessment", "findings": [ { "check": "checklist item", "severity": "critical|major|moderate|minor", "issue": "description", "recommendation": "fix" } ] } ``` ## Dónde encaja - Categoría: [Seguridad](https://skillsagentes.com/categorias/seguridad.md) — Auditorías, revisión de dependencias, manejo de secretos y modelado de amenazas. - Creador: [firebase](https://skillsagentes.com/creators/firebase.md) — 12 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Firebase Ai Logic Basics](https://skillsagentes.com/skills/firebase/agent-skills/firebase-ai-logic-basics.md): Skill oficial para integrar Firebase AI Logic (Gemini API) en apps. Cubre configuración, inferencia multimodal, salida estructurada y seguridad. - [Firebase Firestore](https://skillsagentes.com/skills/firebase/agent-skills/firebase-firestore.md): Configura, gestiona, consulta y ajusta bases de datos Cloud Firestore (edición Standard/Enterprise): modelado de datos, reglas de seguridad, índices e integraciones SDK (Web, Python, iOS, Android, Flutter). - [Extension To Functions Codebase](https://skillsagentes.com/skills/firebase/agent-skills/extension-to-functions-codebase.md): Convierte una Firebase Extension instalada (o su código fuente) en un codebase de Cloud Functions independiente o en un paquete npm publicable, con upgrade de triggers V1 a V2, lifecycle hooks y seguridad declarativa. - [Firebase App Hosting Basics](https://skillsagentes.com/skills/firebase/agent-skills/firebase-app-hosting-basics.md): Despliega y gestiona apps full-stack (Next.js, Angular) con SSR usando Firebase App Hosting: apphosting.yaml, bloques apphosting en firebase.json, secretos y CI/CD con GitHub. - [Firebase Auth Basics](https://skillsagentes.com/skills/firebase/agent-skills/firebase-auth-basics.md): Guía para configurar y usar Firebase Authentication. Úsala cuando la app necesite inicio de sesión de usuarios, gestión de usuarios o acceso seguro a datos mediante reglas de auth. ## Skills relacionadas - [Firebase Auth Basics](https://skillsagentes.com/skills/firebase/agent-skills/firebase-auth-basics.md): Guía para configurar y usar Firebase Authentication. Úsala cuando la app necesite inicio de sesión de usuarios, gestión de usuarios o acceso seguro a datos mediante reglas de auth. - [Extension To Functions Codebase](https://skillsagentes.com/skills/firebase/agent-skills/extension-to-functions-codebase.md): Convierte una Firebase Extension instalada (o su código fuente) en un codebase de Cloud Functions independiente o en un paquete npm publicable, con upgrade de triggers V1 a V2, lifecycle hooks y seguridad declarativa. - [Firebase Ai Logic Basics](https://skillsagentes.com/skills/firebase/agent-skills/firebase-ai-logic-basics.md): Skill oficial para integrar Firebase AI Logic (Gemini API) en apps. Cubre configuración, inferencia multimodal, salida estructurada y seguridad. - [Firebase App Hosting Basics](https://skillsagentes.com/skills/firebase/agent-skills/firebase-app-hosting-basics.md): Despliega y gestiona apps full-stack (Next.js, Angular) con SSR usando Firebase App Hosting: apphosting.yaml, bloques apphosting en firebase.json, secretos y CI/CD con GitHub. - [Firebase Basics](https://skillsagentes.com/skills/firebase/agent-skills/firebase-basics.md): Configura la base de Firebase: instala/verifica la CLI, gestiona login (incl. --no-localhost), crea o selecciona proyectos y descarga los archivos de configuración de la app. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)