// docs / baas security / supabase rls scanner
Supabase RLS escáner: fila chimpu jark'aqaña jan utt'ata jan ukax pakitäwinïri tablanak jikxataña
Fila chimpu jark'aqaña (RLS) ukax mä Supabase respaldampi aplicación apsuyatax clientenakaman datospar internet ukar taypina sayt'ki. IA codificación yänakax RLS forma código generapxi compilai, apsuyatasi, ukat datus ch'ukt jaltayi — RLS habilitado jan tablanakan luratax, política ullasin jan jark'aqki, predicados kawkirix mä columna pachpampir uñtkapxi. Aka artículox mä Supabase RLS escáner ankaxat kun chanip qhanañchchaspa, vibe code aplicacionanakan pusi RLS pakitäwi forma, ukat kunjam mä minutot juk'a propio despliegue escaneaña ukar uñacht'ayi.
Mä RLS escaneo ankaxat kun chanip qhanañchchaspa
Mä RLS pasivu escaneox Supabase https://[project].supabase.co/rest/v1/ ukan apsuyat PostgREST endpoint ukar saraqi. Sapa anon publicable llawi apnaqi — pachpa llawi navegadormax apnaqki uka — ukat tabla lista metadatonaka, anónimo ullañanaka ukat anónimo qillqañanaka uka sondeapxi. Janipuni mä usuario kunjamatakix autenticakaspati ukat janipuni service-role privilegios llamtkiti. Kunti aka lurañ atki, mä atacante jan autenticada internet ukan lurañ atispa.
Base de datos ankaxat, mä escáner aka qhanañchchaspa wali confianzampi:
- RLS mä tablan deshabilitadawa. PostgREST anónimo
SELECTukatakix filanak kuti RLS jan utt'atäkpan jan ukax mä política ukar mukhpan. Pä caso jikxatäwiwa. - Anónimo rol tablanak listapxaspa. Anon llawiampi
GET /rest/v1/ukaxanonrolan kun privilegio sapa tablan utjki uka OpenAPI esquema kuti. IA generada aplicacionax inaktiyiri esquema ukanUSAGEukat sapa tabla ukarSELECTchurapxi, ukax RLS verdadero ullañ niegki ukasti esquema mapa qhana qhanstayañ ukar puriyi. - Anónimo rol insertayaspa. Mä columna formax conjeturampi
POSTsondeox éxitoniwa RLS jan mäINSERTpolítica niegki ukax utjkpan —SELECTjist'antañ utjipana. - Service-role llawix navegador bundle ukan utji. RLS jak'an: mä escáner
SUPABASE_SERVICE_ROLE_KEYjan ukax kun JWTrole: service_roleqillqatani JavaScript bundle ukan jikxati, RLS chanjamawa — kunatix uka llawi katuqki ukax sapa política saltayi.
Mä escaneo externotix kun chanip jan qhanañchchaspa
Honestoñasa escáner limitanakapata. Mä RLS escaneo externotax janit pg_policies tablama, migración archivunakam jan ukax kun política exacto predicado ullkit. Comportamiento caja negra ukat infiri, ukax mä jikxatäwi informaspa kunatix intencional datos público (mä marketing newsletter tabla, mä producto catálogo público) ukäki. FixVibe informa confianza media ukar chimpsutawa escáner intencionada arsxañ jan atkipana — tabla suti uñakipt'añ ukat amuyt'aña.
Pusi RLS pakitäwi formanaka IA yänakax luri
Cursor, Claude Code, Lovable jan ukax Bolt Supabase ukar uñtayatax pachpa pusi RLS pakitäwi formanakax waranqa aplicacionanakan jutapxi. Sapaqatax tipo verificación phasi, compilai ukat apsuyatasi:
Forma 1: RLS janipuniw utt'atakanti
Wali jiläqir pakitäwi forma. Migración tabla luri ukasti desarrollador (jan ukax IA herramienta) armi ALTER TABLE ... ENABLE ROW LEVEL SECURITY. PostgREST anon llawi katuqirir taqi tabla churañaki. Askichäwi: ALTER TABLE public.[name] ENABLE ROW LEVEL SECURITY; ALTER TABLE public.[name] FORCE ROW LEVEL SECURITY;. FORCE jan armkañati — janipana tabla dueño (ukat kun rolax tabla dueñoki) RLS saltayi.
ALTER TABLE public.[name] ENABLE ROW LEVEL SECURITY;
ALTER TABLE public.[name] FORCE ROW LEVEL SECURITY;Forma 2: RLS utt'ata, jan política
Juk'amp imantata pakitäwi. RLS utt'atawa ukasti janit kun política qillqkati. PostgreSQL ukan defecto niega, autenticado usuarionakax jan kun ullkapxi — ukasti desarrolladorax USING (true) uchi aplicación irnaqañapataki, ukax taqinir taqi ullañapatak permitiwa. Askichäwi: mä política auth.uid() ukamp ñiq'iyatax qillqaña: CREATE POLICY "select_own" ON public.[name] FOR SELECT USING (auth.uid() = user_id); ukat pachpama INSERT/UPDATE/DELETE política.
CREATE POLICY "select_own"
ON public.[name]
FOR SELECT
USING (auth.uid() = user_id);Forma 3: Política columnax pachpamp uñtatayi
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 ukan utji ukasti INSERT/UPDATE ukan janiwa
Desarrolladorax ullañ jist'antayi ukasti qillqaña armi. RLS políticanakax sapa comando ukatakiwa. FOR SELECT ullañanak jark'aqaña ukaki; mä cliente anónimo INSERT luraspawa ni mä política jan niegki uka utji. Askichäwi: mä política sapa comando, jan ukax FOR ALL USING ukat WITH CHECK qhana cláusulanakampi apnaqaña.
Kunjam FixVibe Supabase RLS escáner irnaqi
baas.supabase-rls verificación kimsa etapanak luri, sapa qhana confianza nivelampi:
- Etapa 1 — huella. Escáner apsuyat aplicación arumawi, JavaScript bundle parseyi, ukat Supabase proyecto URL ukat anon llawi runtime configuración ukat apsu. Jan DNS conjetura, jan fuerza bruta — navegador ullki uka ullki.
- Etapa 2 — esquema descubrimiento. Mä sapa
GET /rest/v1/anon llawiampix OpenAPI esquema sapa tabla anon rolax uñjki uka kuti. Escáner tabla sutinak apkati ukasti aka etapan jan fila datos ullki. - Etapa 3 — ullaña ukat qillqaña sondeo. Sapa descubrita tabla, escáner mä anónimo
SELECTlimit=1ampi apsu. Filanak kutkañkpax, RLS permisivuwa. Escáner ukan sayt'i — janit filanak enumerkit, janit páginas lurkit, janit datos modifkitti. INSERT sondeonakax verificada dominio dueñacht'a ukat explicito opt-in ukar yatiyatawa; janipuni jan verificada objetivos contra apsutapxiti.
Sapa jikxatäwix exacto petición URL, respuesta estado, respuesta forma (cabecera solo), ukat tabla suti apsuyatawa. Jikxatäwi manqha IA askichäwi promptax mä copy-paste SQL bloque kawkirix Supabase SQL editor ukan apnaqki.
Kun lurañasa escáner kun jikxatkani
Sapa RLS jikxatäwi mä runtime emergencia. Endpoints público PostgREST atacantenakax minutoxat escanepxi. Askichäwi pataka mecánicaki:
- Sapa tabla auditi. Supabase SQL editor ukan
SELECT schemaname, tablename, rowsecurity FROM pg_tables WHERE schemaname = 'public';apnaqaña. Kun filarowsecurity = falsemä problema. - RLS sapa tabla públicon utt'ayaña. Defectux
ENABLE ROW LEVEL SECURITYukatFORCE ROW LEVEL SECURITYsapa luratax tablan — mä migración plantilla luraña. - Comando-por-comando políticanaka qillqañani. Janipuni
FOR ALL USING (true)apnaqaña. SELECT, INSERT, UPDATE, DELETE qhana políticanaka qillqaña — sapaqataxauth.uid()jan ukaxauth.jwt()ukat mä org-id columna ukar ñiq'iyatax. - Mä payïr cuenta verifikaña. Mä yaqha usuariot suskrïpyaña, REST API directamente apnaqas yaqha usuarior registro ullañ tantiyaña. Kun respuestax
200ukäki, política pakitatawa. - Wasitat escaneaña. Askichäwi apnaqatax mä FixVibe escaneo pachpa URL ukar wasitat apnaqaña.
baas.supabase-rlsjikxatäwix qhanawxani.
-- 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;Kunjamas yaqha escáneres ukamp uñtatayi
Wali jiläqir genérico DAST yänaka (Burp Suite, OWASP ZAP, Nessus) janit PostgREST kunkamasa yatkaspa. Aplicaciónam aruñtapxan, /rest/v1/ ruta jan apnaqkapxan, ukat HTML pages amuykipxki uka informapxan. Snyk ukat Semgrep análisis estática yänakax — repositoriux migración archivu RLS llamtañ jan tilxki ukar jikxatapxi, ukasti janit despliegue base de datos jan walt'ata kun chanip qhanañchchaspa. FixVibe vacíou ukan utji: pasivu, BaaS yatiri, kun mä atacante jan autenticada URL público qhanañchchaspa ukan ñiqiyatawa.
Jichhar jiskt'awinaka
¿Escáner datusam ullkani jan ukax modifikkani?
Janiwa. Pasivu escaneonakax aka jiläqirti mä SELECT ... limit=1 sapa jikxatat tablan apsu RLS anónimo ullañar permitki uka qhanañchañataki. Escáner respuesta forma apsuyi, jan fila contenido. INSERT, UPDATE, ukat DELETE sondeonakax verificada dominio dueñacht'a ukar yatiyatawa ukat janipuni jan verificada objetivos contra apsutapxiti.
¿Aka irnaqaspax Supabase proyectoma pausada jan ukax custom dominio ukan utjkpan?
Pausada proyectonakax 503 sapa petición ukar kuti — escáner proyecto jan jak'a uñacht'ayi. Custom dominios irnaqi apsuyat aplicación Supabase cliente SDK navegadoran apnaqki ukasa; escáner proyecto URL bundle ukat sapa kuti apsu.
¿Kuns lurañani anon llawi rotada jan ukax publishable llawi mayjt'kpan?
Escaneo wasitat apnaqaña. Escáner llawi sapa apsuyat bundle ukat sapa apnaqaña wasitat apsu. Rotación nayrïr informe ukak invalidi, jan base de datos política estado.
¿Escáner Supabase machaq publishable-key modelo (<code>sb_publishable_*</code>) verifikitti?
Iya. Detector legacy anon JWTs ukat machaq sb_publishable_* llawinakat amuykipipxi ukat pachpat tratapxi — paypachas público utt'asipi ukat paypachas RLS sapa defensa línea utjayapxi.
Qhipa lurawinaka
Inaki FixVibe escaneo production URL ukar apnaqaña — baas.supabase-rls verificación sapa plan ukan inaki tier ukamp utt'atawa. Supabase proyecto ankaxat kun jaltaña kawkirix ulla, Supabase service role llawi JavaScript ukan qhanstayata ukat Supabase storage bucket jark'aqaña checklist. BaaS proveedores ukar mä jach'a uñjaña, BaaS jan walt'awi escáner ulla.
