FixVibe

// baas / 스포트라이트

Firebase 보안 규칙

`allow read, write: if true`는 지금 이 순간 누군가의 프로덕션 데이터베이스예요.

핵심

Firebase tutorials show open rules to keep examples short — `match /{document=**} { allow read, write: if true; }` makes the example database work, the tutorial finish, and the developer feel productive. Plenty of apps copy that rule straight into production and never update it. Public buckets full of customer data, Firestore collections readable by any visitor with the API key (which ships in the client bundle by design), Realtime Database trees writable by anyone with curl. Firebase's security model is solid when used correctly; the failure mode is operational, not architectural. Mass scanners continuously probe Firebase projects for permissive rules, and every disclosure cycle of 'company X leaked Y million records' is a permissive ruleset that nobody noticed.

어떻게 동작하나요

Each Firebase service — Firestore, Realtime Database, Cloud Storage — has its own rules engine, expressed in a custom DSL that runs server-side per request. Without explicit rules, the default for new projects is locked-down (since 2019). With explicitly permissive rules, the data is open to any visitor with the public API key, which ships in your client bundle by design (Firebase's security model assumes rules are the gate). The bug surfaces three ways: copy-pasted tutorial rules left in production, attempted rules that are syntactically valid but semantically broken (allow conditions that always evaluate true), and rules-as-afterthought scenarios where a developer added a new collection and forgot to add matching rules.

변종

Allow-anyone-everything

Classic shape: `match /{document=**} { allow read, write: if true; }`. Tutorial code that shipped to prod. Total exposure.

Auth-but-no-ownership

Rules require auth but don't check ownership: `allow read, write: if request.auth != null;`. Any signed-up user reads everyone else's data.

Open Cloud Storage buckets

Storage rules permit reads of any path. User-uploaded files (profile pics, documents, internal attachments) are crawlable.

Wildcard-write Realtime DB

RTDB rules tree without explicit per-path rules defaults to inheriting parent permissions. One permissive parent opens the whole subtree.

피해 범위

Customer data leak: profiles, messages, uploaded files, internal documents, payment metadata — all readable by any visitor with the API key. Write access often comes paired (most permissive rules don't distinguish read from write), letting the attacker plant content, modify others' data, fill your storage quota with junk to drive up your bill, or replace user-visible content with phishing. For consumer apps, this is the kind of incident that makes the news. For B2B SaaS, customer disclosure obligations kick in immediately.

// what fixvibe checks

What FixVibe checks

FixVibe checks backend-as-a-service exposure through safe configuration and access-boundary signals. Reports focus on what is exposed and how to lock it down. For check-specific questions about exact detection heuristics, active payload details, or source-code rule patterns, contact support@fixvibe.app.

확실한 방어

Never ship `allow read, write: if true` to a production project. Write rules that match your data model and authorization model — for Firestore, scope every read and write to documents the requesting user owns or has permission to access. Use Firebase's local emulator (`firebase emulators:start`) to test rules during development; emulator-based tests with `@firebase/rules-unit-testing` are the right shape for CI. Audit every collection regularly for explicit rules — the absence of rules for a new collection is a deny by default, but only if you trust your team to never write a wildcard match. For Cloud Storage, scope rules per-path: `match /users/{userId}/{allPaths=**} { allow read: if request.auth.uid == userId; }`. Move sensitive data into a dedicated project where the rules baseline is stricter. Subscribe to Firebase's Security Rules anomaly detection (Spark/Blaze plan feature) so unexpected rule changes alert before they bite.

// 내 앱에서 직접 실행해보세요

FixVibe가 지켜보는 동안 계속 배포하세요.

FixVibe는 공격자가 보는 것처럼 앱의 공개 영역을 압박 테스트합니다 — 에이전트도, 설치도, 카드도 필요 없어요. 새로운 취약점 패턴을 계속 연구해 실용적인 체크와 Cursor, Claude, Copilot에 바로 붙여넣을 수 있는 수정안으로 바꿉니다.

Backend-as-a-Service
17
이 카테고리에서 실행되는 테스트
모듈
4
전용 backend-as-a-service 검사
매 스캔
384+
모든 카테고리 합계 테스트
  • 무료 — 카드 없이, 설치 없이, Slack 알림 없이
  • URL만 붙여넣으세요 — 크롤, 탐지, 보고는 저희가
  • 심각도별 분류, 중복 제거된 신호만
  • 최신 AI 수정 프롬프트를 Cursor, Claude, Copilot에 바로 붙여넣기
무료 스캔 실행

// 최신 체크 · 실용적인 수정 · 자신 있게 배포

Firebase 보안 규칙 — 취약점 스포트라이트 | FixVibe · FixVibe