FixVibe

// docs / baas security / firebase rules scanner

Firebase reglnaskanni: finndu opnar Firestore-, Realtime Database- og Storage-reglur

Firebase-forrit bregðast öryggi á einn samkvæman hátt: <code>allow read, write: if true;</code>-reglur skildar eftir frá test-mode-fljótstartinu, aldrei skipt út fyrir framleiðslu. AI-kóðunarverkfæri framleiða þessar reglur orðrétt úr skjölunardæmum og hvetja sjaldan þróunaraðilann til að herða þær. Þessi grein sýnir hvernig Firebase reglnaskanni greinir opnar reglur yfir Firestore, Realtime Database og Cloud Storage utan verkefnisins — og hvernig á að laga það sem hann finnur.

Hvernig skanninn finnur opnar Firebase-reglur

Firebase-þjónustur opna vel þekkt, fyrirsjáanleg URL-snið. Skanni án skilríkja getur kannað hvert og fylgst með hvort ókenndar lestur heppnist. FixVibe baas.firebase-rules-athugunin keyrir í þremur óháðum könnunum — einni á hverja Firebase-þjónustu:

  • <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. Skanninn kannar https://[project-id]-default-rtdb.firebaseio.com/.json. Ef rótin er læsileg ókennt, er svarið allur gagnagrunnstréð sem JSON. Íhaldssamari prófun spyr .json?shallow=true, sem skilar aðeins topplaglyklum — niðurstaða í báðum tilvikum.
  • Cloud Storage. Skanninn spyr https://firebasestorage.googleapis.com/v0/b/[project-id].appspot.com/o. Ef svarið listar skrárnöfn án auðkenningar, er fatan anon-listanleg. Listanleg geymsla er niðurstaða jafnvel þegar einstakar skráaniðurhalanir eru hafnaðar — árásarmenn telja fötuna upp til að finna getanleg skrárnöfn.

Hvernig test-mode-gildran lítur í raun út

Firebase fljótstartsskjölunin inniheldur einn af mest afrituðu reglnablokkum á internetinu:

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

Firebase bætti áður við sjálfvirku 30-daga útrunna á þessar reglur. Það breyttist: í dag standa reglurnar að eilífu nema þróunaraðilinn skipti þeim út. AI-kóðunarverkfæri — eftir að hafa þjálfað á árum skjölunar sem inniheldur test-mode-blokkina — gefa hana oft út orðrétt og segja þróunaraðilanum "þetta er öryggisreglan þín." Það er hún ekki.

Önnur afbrigði sem birtast í framleiðslu en eru jafn leyfileg:

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;
  • Framtíðar-tímastimpilsafbrigði: regla sem leyfir allt þar til dagsetning langt í framtíðinni. Rennur aldrei í raun út (sjá hápunktaða blokkina hér að ofan).
  • allow read: if true; allow write: if request.auth != null; — opinber lestur, sérhver auðkenndur notandi getur skrifað.
  • allow read, write: if request.auth != null; — hver innskráður notandi getur lesið eða skrifað hvaða skjal sem er, þar á meðal gögn annarra notenda.

Hvað á að gera þegar skanninn finnur opna reglu

Opnar Firebase-reglur eru keyrsluneyðarástand. Lagfæringin er á sama sniði yfir allar þrjár þjónusturnar: afmarkaðu hverja reglu við request.auth.uid gegn skýrum eigandareit. Hver þjónusta hefur eigin reglnasetningarfræði:

Firestore

match /users/{userId} { allow read, write: if request.auth != null && request.auth.uid == userId; }. Slóðarsegmentbindingin {userId} verður eina skjalið sem notandinn getur snert.

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; } } }. Sáttmáli: geymdu skrár undir users/[uid]/[filename] og láttu slóðina framfylgja eignarhaldi.

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

Útgefðu reglur í gegnum Firebase CLI: firebase deploy --only firestore:rules, firebase deploy --only database, firebase deploy --only storage. Staðfestu að nýju reglurnar séu í framleiðslu með því að endurkeyra FixVibe-skönnunina — baas.firebase-rules-niðurstaðan ætti að hverfa.

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

Hvernig þetta ber saman við innbyggð Firebase-verkfæri

Firebase Console sýnir þér núverandi reglur en endurskoðar þær ekki gegn keyrsluhegðun. Firebase Rules-hermir leyfir þér að prófa reglnarökfræði gegn tilbúnum beiðnum — gagnlegt en staðbundið. Hvorugt verkfærið segir þér hvað framleiðslureglurnar þínar í raun skila ókenndum árásarmanni á opinbera internetinu. Utanaðkomandi skanni eins og FixVibe (eða Burp Suite með handvirkri stillingu) er það eina sem kannar úr sömu átt og árásarmaður myndi gera. Eigin App Check Google mildar misnotkun en kemur ekki í stað rétt afmarkaðra reglna.

Algengar spurningar

Les eða breytir skanninn Firestore-gögnunum mínum?

Hlutlausar skannanir gefa út í mesta lagi eina ókennda lestur á hverja þjónustu til að staðfesta hvort reglur leyfi það. Skanninn skráir svarsnið og tilvist gagna — hann síðunúmerar ekki, telur ekki upp skjöl og skrifar ekki. Skrifkannanir eru aðgangsstýrðar með staðfestu lénseignarhaldi og keyra aldrei gegn óstaðfestum markmiðum.

Hvað ef Firebase-verkefnið mitt notar App Check?

App Check hafnar óauðkenndum beiðnum með 403. Skanni án App Check-táknis mun sjá 403 á hverri könnun — sem er rétt niðurstaða. App Check er ekki staðgengill fyrir réttar reglur (stolið App Check-tákn ásamt opinni reglu lekur enn gögnum), en það lokar fyrir tækifærissinnaðar utanaðkomandi skannanir.

Getur skanninn greint hlutarangstillingar reglna (lestur opinn, skrif lokuð)?

Já — hver regla (allow read, allow write) er könnuð sérstaklega. Lestrar-eingöngu könnun sem heppnast með 200 OK tilkynnir opna-lestrar-niðurstöðu jafnvel þó að skrif séu hafnað. Þær tvær niðurstöður eru aðskildar: gagnaútdráttur og gagnameðferð eru aðskildar áhættur.

Virkar þetta fyrir Firebase-forrit sett upp undir sérstöku léni?

Já. Skanninn dregur Firebase verkefnis-ID-ið úr uppsetta knippinu, ekki úr léninu. Sérstök lén, app.web.app-undirlén og sjálfhýstu Firebase-forrit virka öll á sama hátt svo lengi sem JavaScript-knippið er aðgengilegt.

Næstu skref

Keyrðu ókeypis FixVibe-skönnun gegn framleiðslu-URL þínum — baas.firebase-rules-athugunin er á öllum áskriftum og merkir opnar reglur yfir Firestore, Realtime Database og Cloud Storage. Fyrir dýpri útskýringu á allow read, write: if true-mynstrinu sérstaklega, sjáðu Firebase allow read, write: if true útskýrt. Fyrir regnhlífaryfirlit yfir Supabase, Firebase, Clerk og Auth0, lestu BaaS-rangstillingaskanni.

// skannaðu baas-yfirborð þitt

Finndu opnu töfluna áður en einhver annar gerir það.

Settu inn framleiðslu-URL. FixVibe telur upp BaaS-veiturnar sem forritið þitt talar við, fingrafarir opnu endapunktana þeirra og tilkynnir hvað ókennt biðlari getur lesið eða skrifað. Ókeypis, engin uppsetning, ekkert kort.

  • Ókeypis stig — 3 skannanir/mánuð, ekkert kort við skráningu.
  • Hlutlaus BaaS-fingrafararakning — engin lénsstaðfesting þörf.
  • Supabase, Firebase, Clerk, Auth0, Appwrite og fleiri.
  • AI-lagfæringarspurningar á hverri niðurstöðu — límdu aftur í Cursor / Claude Code.
Keyrðu ókeypis BaaS-skönnun

engin skráning krafist

Firebase reglnaskanni: finndu opnar Firestore-, Realtime Database- og Storage-reglur — Docs · FixVibe