FixVibe

// docs / baas security / supabase rls scanner

Supabase RLS escáner: ejuhu tabla nde'ireíva row-level security térã ipykavypéva

Row-level security (RLS) ha'eñoite oĩva ne cliente-kuera datos ha internet pa'ũme rehupi peteĩ aplicación Supabase ojejapóva. Tembipuru IA omoheñói código RLS-icha, ojejapo compile, oñemoherakuã, ha oñemyaña datos kirirĩháme — tabla oñemoheñói RLS nde'iréi habilitado, política omoñe'ẽ aẽ aikatuiva omyatyrõ, predicado ojoja peteĩ columna ijehegui ndive. Ko tembiapokue ohechauka mba'épa peteĩ Supabase RLS escáner ikatu ohechauka okágui, umi irundy RLS ipykavýva oĩva aplicación vibe-code-pe, ha mba'éichapa eñehecha ne deployment teépe peteĩ minuto'íme.

Mba'épa peteĩ RLS escaneo okápe gui ikatu ohechauka

Peteĩ RLS escaneo pasivo oñemboguata Supabase PostgREST endpoint https://[project].supabase.co/rest/v1/-pe oĩvape. Oipuru'ỹnte pe anon publicable llave — pe llave navegador oipurúva — ha ohecha tabla list metadata, anonymous read, ha anonymous write. Araka'eve nahániri autentica usuario-icha ha araka'eve ndotopái service-role privilegio. Mba'eve ojapokuaáva, peteĩ atacante nahániri autenticado internet-pe avei ikatu ojapo.

Okápe base de datos-gui, peteĩ escáner ikatu ohechauka ko'ã mba'e confianza guasúpe:

  • RLS oĩ deshabilitado peteĩ tabla-pe. PostgREST omyenyhẽ fila peteĩ anonymous SELECT-pe RLS oĩrõ ipe'apyre térã peteĩ política omoneĩ. Mokõive caso ha'e peteĩ jejuhu.
  • Anonymous rol ikatu olista tabla. Peteĩ GET /rest/v1/ anon llave-ndive omyenyhẽ OpenAPI esquema cada tabla rehegua oĩháme anon rol oguereko mba'eve privilegio. Aplicación IA omoheñói meme omeẽ USAGE esquema-pe ha SELECT cada tabla-pe, upéicha ohechauka esquema mapa entero RLS oñemoneĩ rire upéichavoi tee lectura.
  • Anonymous rol ikatu omoinge. Peteĩ POST sondeo columna ñembohovái-ndive osẽporã RLS noguerekói peteĩ INSERT política omoneĩva — SELECT ipe'apyrévape jepe.
  • Service-role llave oĩ navegador bundle-pe. RLS-pe ypýpe: peteĩ escáner ojuhúrõ SUPABASE_SERVICE_ROLE_KEY térã mba'e JWT role: service_role-ndive JavaScript bundle-pe, RLS noĩiete — pe llave oguerekóva ohasa opavave política.

Mba'épa peteĩ escaneo okápe ndaikatúi ohechauka

Eñe'ẽ añetegua escáner mbojupéva rehegua. Peteĩ RLS escaneo okápe ndaikatúi omoñe'ẽ ne pg_policies tabla, ne migración kuatia, térã pe predicado mba'evepáva política. Ojepy'amongeta okápe gui jehecha rupive, péva he'ise upéicha sapy'ánte omombe'úta peteĩ jejuhu osẽmíva ipublikova teete (peteĩ tabla newsletter marketing, peteĩ catálogo producto público). FixVibe ñe'ẽmbohasakuera ohechauka ko'ã mba'e confianza mbytépe escáner ndaikatúiva oikuaa intención mba'épa — ehecha tabla réra ha eikuaaporã.

Umi irundy RLS ipykavýva tembipuru IA omoheñói

Cursor, Claude Code, Lovable térã Bolt eikũmby Supabase rehe, umi irundy patrón RLS ipykavýva osẽ heta sũ aplicación-pe. Cada peteĩ ohasa tipo verifikación, ojejapo compile, ha oñemoherakuã:

Forma 1: RLS araka'eve ojehabilita

Pe ipykavyvéva. Migración omoheñói tabla ha pe desarrollador (térã pe IA tembipuru) hesarái ALTER TABLE ... ENABLE ROW LEVEL SECURITY. PostgREST omyenyhẽ tabla entero opavavépe oguerekóva anon llave. Myatyrõ: ALTER TABLE public.[name] ENABLE ROW LEVEL SECURITY; ALTER TABLE public.[name] FORCE ROW LEVEL SECURITY;. FORCE ndaha'éi opcional — upe'ỹre tabla jára (ha mba'e rol oguerekóva tabla propiedad) ohasa RLS.

sql
ALTER TABLE public.[name] ENABLE ROW LEVEL SECURITY;
ALTER TABLE public.[name] FORCE  ROW LEVEL SECURITY;

Forma 2: RLS habilitado, política nde'iréi

Peteĩ vai katukokuera. RLS oĩ habilitado ha política nde'iréi ojehai. Pe predeterminado PostgreSQL-pe ha'e omboyke, upéicha rupi usuario autenticado ndohechái mba'eve — ha pe desarrollador omoĩ USING (true) aplicación omba'apo hag̃ua, péva omoneĩ opavavépe omoñe'ẽ opavave mba'e. Myatyrõ: ehai peteĩ política oñembojárõva auth.uid() rehe: CREATE POLICY "select_own" ON public.[name] FOR SELECT USING (auth.uid() = user_id); ha peteĩ política INSERT/UPDATE/DELETE-pe avei.

sql
CREATE POLICY "select_own"
  ON public.[name]
  FOR SELECT
  USING (auth.uid() = user_id);

Forma 3: Política ojoja columna ijehegui ndive

A copy-paste artefact. The developer writes <code>USING (user_id = user_id)</code> — which is always true — instead of <code>USING (auth.uid() = user_id)</code>. Type-checks pass; the policy permits every row. <strong>Fix:</strong> always compare a column to a function call (<code>auth.uid()</code>, <code>auth.jwt()->>'org_id'</code>, etc.), never to itself or to a constant.

Forma 4: Política SELECT-pe ha INSERT/UPDATE-pe nde'iréi

Pe desarrollador omboty lectura ha hesarái escritura. RLS política ha'e comando rupi. FOR SELECT oñangareko lectura rehénte; peteĩ cliente anónimo ikatu gueteri INSERT política nomoneĩrirõ. Myatyrõ: ehai peteĩ política cada comando rupi, térã eipuru FOR ALL cláusula USING ha WITH CHECK ekuatiapýva ndive.

Mba'éichapa FixVibe Supabase RLS escáner omba'apo

Pe baas.supabase-rls check omba'apo mbohapy etapa-pe, cada peteĩ confianza ekuatiapývape:

  1. Etapa 1 — huella. Pe escáner ohasa aplicación oñemoherakuãva, omopãembe ijavascript bundle, ha oguenohẽ Supabase proyecto URL ha anon llave configuración runtime-gui. Ndaipóri DNS jeporavopy, ndaipóri fuerza bruta — omoñe'ẽ navegador omoñe'ẽva.
  2. Etapa 2 — esquema jejuhu. Peteĩ GET /rest/v1/ anon llave-ndive omyenyhẽ OpenAPI esquema cada tabla rehegua anon rol ikatúva ohecha. Pe escáner oñongatu tabla réra ha noñongatúi datos fila-pe ko etapa-pe.
  3. Etapa 3 — lectura ha escritura sondeo. Cada tabla ojejuhúva, escáner ojapo peteĩ SELECT anónimo limit=1-ndive. Fila osẽrõ, RLS oĩ permisivo. Pe escáner opyta upépe — naipórái fila, naipaginái, nomodifikái datos. INSERT sondeo oĩ ñangarekopyre dominio verificación rire ha opt-in ekuatiapýva ndive; araka'eve ojapói target verifika'ỹme.

Cada jejuhu omeẽ URL ekuatiapýva, ñembohovái status, ñembohovái forma (encabezado-nte), ha tabla réra. Pe IA prompt myatyrõrã jejuhu yvýpe ha'e peteĩ SQL bloque copy-paste embohape Supabase SQL editor-pe.

Mba'épa ejapóta escáner ojuhu rire mba'eve

Cada RLS jejuhu ha'e peteĩ emergencia runtime. PostgREST endpoint público oñehecha atacante rupi minuto-pe. Pe ñemyatyrõ tape ha'e mecánico:

  1. Ehecha cada tabla. Embohape SELECT schemaname, tablename, rowsecurity FROM pg_tables WHERE schemaname = 'public'; Supabase SQL editor-pe. Mba'e fila rowsecurity = false-ndive ha'e peteĩ apañuãi.
  2. Ehabilita RLS cada tabla público-pe. Eipuru predeterminado-icha ENABLE ROW LEVEL SECURITY ha FORCE ROW LEVEL SECURITY cada tabla omoheñóivape — embojere migración template.
  3. Ehai política comando-comando. Ani eipuru FOR ALL USING (true). Ehai política ekuatiapýva SELECT, INSERT, UPDATE, DELETE-pe — cada peteĩ ojejojáva auth.uid() rehe térã peteĩ org-id columna auth.jwt()-gui.
  4. Eikuaapotĩ peteĩ mokõiha cuenta-ndive. Eñemoinscribi usuario ambue-icha, ehupyty omoñe'ẽ ambue usuario registro REST API-gui directo. Ñembohovái 200-rõ, política ipykavy.
  5. Eheka jey. Emyatyrõ rire, embohape jey peteĩ FixVibe escaneo pe URL pe'íme. Pe baas.supabase-rls jejuhu oñembogue va'erã.
sql
-- Audit every table for missing RLS. Run in the Supabase SQL editor.
SELECT schemaname, tablename, rowsecurity
FROM   pg_tables
WHERE  schemaname = 'public'
ORDER  BY rowsecurity, tablename;

Mba'éichapa kóva ojeja'o ambue escáner rehe

DAST tembipuru opaichagua (Burp Suite, OWASP ZAP, Nessus) ndoikuaái mba'épa PostgREST. Oikutu ne aplicación, opyrũ /rest/v1/ tape rehe, ha omombe'u HTML pe oikũmbýva rehegua. Snyk ha Semgrep ha'e tembipuru análisis estático — ojuhu migración kuatia ne repo-pe RLS nde'iréi ndive, péro ndaikatúi ohechauka pe base de datos oñemoherakuãvape oĩ vai. FixVibe oĩ pa'ũme: pasivo, BaaS ojekuaáva, ojejapyhý mba'épa peteĩ atacante nahániri autenticado ikatu ohechauka URL pública-gui.

Porandu hetave ojeporandúva

Pe escáner piko omoñe'ẽta térã omodifikáta che datos?

Nahániri. Escaneo pasivo ojapo upe'ỹve peteĩ SELECT ... limit=1 cada tabla ojejuhúvape ohecha hag̃ua RLS omoneĩ anonymous lectura. Pe escáner oñongatu ñembohovái forma, nahániri fila pype. INSERT, UPDATE, ha DELETE sondeo oĩ ñangarekopyre dominio verificación rire ha araka'eve ndojapói target verifika'ỹme.

Omba'apo piko kóva che Supabase proyecto oñembopytauhápe térã peteĩ dominio teépe?

Proyecto oñembopytauha omyenyhẽ 503 cada solicitud-pe — pe escáner omombe'u proyecto ndaipóri-ramo. Dominio teete omba'apo pe aplicación oñemoherakuãva ohupyty gueteri Supabase cliente SDK navegador-pe; pe escáner oguenohẽ proyecto URL bundle-gui mokõive hendape.

Mba'épa ojehúta che anon llave oñembojere térã che publishable llave oñemoambue?

Embohape jey escaneo. Pe escáner oguenohẽ jey llave pe bundle ko'ãgaguágui cada ojejapo. Mboi'apy omopypaha pe omombe'u yma rehegua-nte, nahániri base de datos política estado.

Pe escáner piko ohecha pe Supabase publishable llave modelo pyahu (<code>sb_publishable_*</code>)?

Heẽ. Pe detector oikuaa JWT anon mboypy ha sb_publishable_* llave pyahu ha omoirũ mokõive peteĩchaite — mokõive ojejapo público hag̃ua ha mokõive omoheja RLS-nte sãsõ liña.

Tape upéi

Embohape peteĩ FixVibe escaneo reiete ne producción URL-pe — pe baas.supabase-rls check oĩ habilitado cada plan-pe, plan reiete avei. Eñemo'arandu mba'épa avei ikatu osẽ peteĩ Supabase proyecto-gui, ehecha Supabase service role llave ojehechakáva JavaScript-pe ha Supabase storage bucket seguridad checklist. Pe ñemoirũ jepyguarã opavave BaaS proveedor rehegua, emoñe'ẽ BaaS oñembosakopa vai escáner.

// eheka ne baas superficie

Ejuhu pe tabla ojepe'apyréva ambue ohechauka mboyve.

Emoinge peteĩ producción URL. FixVibe oikũmby mba'e BaaS proveedor ne aplicación oñe'ẽ hendive, ohechauka iñendpoint público, ha omombe'u mba'épa peteĩ cliente nahániri autenticado ikatu omoñe'ẽ térã ohaikuaa. Reiete, ne instalación, ne tarjeta.

  • Plan reiete — 3 escaneo/mes, ne tarjeta inscripción.
  • BaaS huella pasiva — ndaikatúi dominio verificación.
  • Supabase, Firebase, Clerk, Auth0, Appwrite ha hetave.
  • IA prompt myatyrõrã opaichagua jejuhúpe — emboi Cursor / Claude Code-pe.
Supabase RLS escáner: ejuhu tabla nde'ireíva row-level security térã ipykavypéva — Docs · FixVibe