FixVibe

// docs / baas security / firebase rules scanner

Firebase reglu-skannari: finn opnar Firestore, Realtime Database og Storage reglur

Firebase-appir bresta trygd á einum samanhangandi hátti: <code>allow read, write: if true;</code>-reglur eftirlatnar frá royndar-modul-snarbyrjanini, ongantíð útskiftar áðrenn framleiðslu. AI-kotuamboð framleiða hesar reglur orðrætt frá skjalfestingar-dømum og biðja sjáldan menningarmannin at herða tær. Henda greinin vísir, hvussu ein Firebase reglu-skannari uppgøtar opnar reglur yvir Firestore, Realtime Database og Cloud Storage úr uttan projektinum — og hvussu at laga tað, sum hon finnur.

Hvussu skannarin finnur opnar Firebase-reglur

Firebase-tænastur avdúka væl-kendar, fyrisigjanligar URL-formir. Ein skannari uttan rættindi kann royna hvørja eina og síggja, um anonymar lesturmaður lukkast. FixVibes baas.firebase-rules-eftirkanning koyrir í trimum óheftum rannsóknum — ein per Firebase-tænastu:

  • <strong>Firestore.</strong> The scanner extracts the project ID from the deployed app's bundle (it's in <code>firebase.initializeApp({ projectId: ... })</code>), then issues <code>GET https://firestore.googleapis.com/v1/projects/[project-id]/databases/(default)/documents/[collection]:listDocuments</code> against common collection names. A <code>200 OK</code> with documents in the response means <code>allow read</code> is permissive.
  • Realtime Database. Skannarin royndar https://[project-id]-default-rtdb.firebaseio.com/.json. Um rótin er lesilig anonymt, er svarið heilt dátugrunns-træið sum JSON. Ein meiri varisligi roynd fyrispurnir .json?shallow=true, sum bert gevur topp-stigs-lyklar aftur — ein finding í báðum førleikum.
  • Cloud Storage. Skannarin fyrispurnir https://firebasestorage.googleapis.com/v0/b/[project-id].appspot.com/o. Um svarið listar fílunøvn uttan váttan, er bøttan anon-listanlig. Listanlig goymsla er ein finding, sjálvt tá einstakar fílu-niðurlastingar verða noktaðar — árásarmenn telja bøttuna upp at finna gitanleg fílunøvn.

Hvussu royndar-modul-fóttrýtt veruliga sær út

Firebase snarbyrjanar-skjalfestingin innehaldir ein av mest-kopiera regluni blokkum á alnetinum:

firebase
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

Firebase plagaði at leggja eina sjálvirkandi 30-daga útrunning á hesar reglur. Tað broyttist: í dag verða reglurnar varandi, um menningarmaðurin ikki skiftir tær út. AI-kotuamboð — venjað á árum av skjalfesting, sum hevur royndarmodul-blokkin — geva ofta hann orðrætt fram og siga menningarmanninum "hetta er tín trygdarregla". Tað er hon ikki.

Aðrar variantar, sum koma fram í framleiðslu, men eru júst so loyvandi:

firebase
// future-date variant — equivalent to "if true"
allow read, write: if request.time < timestamp.date(2099, 1, 1);

// authenticated-user variant — any signed-in user reads and writes anything
allow read: if true;
allow write: if request.auth != null;

// any-auth variant — any signed-in user owns every document
allow read, write: if request.auth != null;
  • Ein framtíðar-tíðarmerki-variantur: ein regla, sum loyvir alt til ein dag langt fram í tíðina. Útrennur ongantíð veruliga (sí merkta blokkin omanfyri).
  • allow read: if true; allow write: if request.auth != null; — almennar lesturmaður, hvør váttaður brúkari kann skriva.
  • allow read, write: if request.auth != null; — hvør innskrivaður brúkari kann lesa ella skriva hvørt skjal, eisini onkur annars brúkara dátur.

Hvat at gera, tá skannarin finnur eina opna reglu

Opnar Firebase-reglur eru ein runtime-neyðstøða. Bótin er sama formurin í øllum trimum tænastum: avmarka hvørja reglu til request.auth.uid ímóti einum greiðum ogara-felti. Hvør tænasta hevur sína egnu reglu-syntaks:

Firestore

match /users/{userId} { allow read, write: if request.auth != null && request.auth.uid == userId; }. Leiðar-být-binding {userId} verður einasta skjal, brúkarin kann nerta.

firebase
match /users/{userId} {
  allow read, write: if request.auth != null
                     && request.auth.uid == userId;
}

Realtime Database

<code>{ "rules": { "users": { "$uid": { ".read": "$uid === auth.uid", ".write": "$uid === auth.uid" } } } }</code>. The <code>$uid</code> wildcard captures the path segment for comparison.

json
{
  "rules": {
    "users": {
      "$uid": {
        ".read":  "$uid === auth.uid",
        ".write": "$uid === auth.uid"
      }
    }
  }
}

Cloud Storage

service firebase.storage { match /b/{bucket}/o { match /users/{userId}/{allPaths=**} { allow read, write: if request.auth.uid == userId; } } }. Konventión: goym fílur undir users/[uid]/[filename] og lat leiðina framtvinga ogandi.

firebase
service firebase.storage {
  match /b/{bucket}/o {
    match /users/{userId}/{allPaths=**} {
      allow read, write: if request.auth.uid == userId;
    }
  }
}

Deploya reglur gjøgnum Firebase CLI: firebase deploy --only firestore:rules, firebase deploy --only database, firebase deploy --only storage. Vátta at nýggju reglurnar eru í framleiðslu við at koyra FixVibe-skanningina aftur — baas.firebase-rules-findingin eigur at hvørva.

bash
firebase deploy --only firestore:rules
firebase deploy --only database
firebase deploy --only storage

Hvussu hetta verður samanborið við Firebases innbygdu amboð

Firebase Console vísir tær verandi reglurnar men gransknar tær ikki ímóti runtime-atferð. Firebase Rules simulator letir teg royna reglu-loikið ímóti gjørdum fyrispurningum — nyttiligt men staðiligt. Hvørki amboðið sigur tær, hvat tínar framleiðslureglur veruliga geva aftur til ein óvátt árásarmann á hinum almenna alnetinum. Ein uttarligur skannari sum FixVibe (ella Burp Suite við handfarni skipan) er tað einasta amboð, sum royndar úr sama vinkli, sum árásarmaður vildi gjørt. Googles egna App Check minkar misbúk men er ikki ein staðin fyri rætt avmarkaðum reglum.

Ofta settir spurningar

Lesir ella broytir skannarin mína Firestore-dátur?

Passivar skanningar senda í mesta lagi eitt anonymt lestur per tænastu til at vátta, um reglur loyva tað. Skannarin skrásetir svar-formina og verið-til av dátum — hon paginerar ikki, telur ikki skjøl upp og skrivar ikki. Skriva-rannsóknir eru avmarkaðar bak váttað domena-ogandi og koyra aldri móti óváttaðum málum.

Hvat um mítt Firebase-projekt brúkar App Check?

App Check noktar óváttaðar fyrispurningar við 403. Ein skannari uttan ein App Check-token sær 403 á hvørjari rannsókn — sum er rætta úrslitið. App Check er ikki ein staðin fyri reglu-rættleika (ein stolin App Check-token plús ein opin regla lekkir framvegis dátur), men hann steðgar tilvilja uttarligar skanningar.

Kann skannarin uppgøta partlar regluferil (lestur opin, skriva læst)?

Ja — hvør regla (allow read, allow write) verður royndað hvør sær. Ein bert-lestur-rannsókn, sum lukkast við 200 OK, fráboðar eina opin-lestur-finding, sjálvt um skriva er noktað. Tær báðar findings eru óheftar: dátu-útdráking og dátu-manipulering eru ymiskir váðar.

Virkar hetta fyri Firebase-appir deployaðar undir einum sergjørdum domena?

Ja. Skannarin dregur Firebase-projekt-ID'in út úr hini deployaðu bunka, ikki úr domeninum. Sergjørd domena, app.web.app-undirdomena og sjálvshostaðar Firebase-appir virka øll á sama hátt, so leingi sum JavaScript-bunkin er ráligur.

Næstu stig

Koyr eina ókeypis FixVibe-skanning móti tíni framleiðslu-URL — baas.firebase-rules-eftirkanningin koyrir á hvørjari ætlanini og merkir opnar reglur yvir Firestore, Realtime Database og Cloud Storage. Fyri eina djúpari greining um allow read, write: if true-mynstrið serliga, sí Firebase allow read, write: if true greiðað. Fyri tað omfattandi yvirlit yvir Supabase, Firebase, Clerk og Auth0, les BaaS-misskipansskannari.

// skanna tína baas-yvirflatu

Finn ta opnu talvuna, áðrenn onkur annar ger tað.

Set eina framleiðslu-URL inn. FixVibe telur upp tær BaaS-veitarar, sum tín app tosar við, fingraavryggjar teirra alment endapunkt og fráboðar, hvat ein óvátt klientur kann lesa ella skriva. Ókeypis, eingin innleggjing, eitt einki kort.

  • Ókeypis støði — 3 skanningar/mánaði, einki kort við tilmelding.
  • Passiv BaaS-fingraavrygging — eingin domena-vátting kravd.
  • Supabase, Firebase, Clerk, Auth0, Appwrite og fleiri.
  • AI-fix-leiðbeiningar á hvørjari findingi — set aftur inn í Cursor / Claude Code.
Firebase reglu-skannari: finn opnar Firestore, Realtime Database og Storage reglur — Docs · FixVibe