FixVibe

// docs / baas security / supabase service role exposure

Supabase service role llawi JavaScript ukan qhanstayata: kun saña ukat kunjam jikxataña

Supabase service role llawix base de datusam maestro llawiwa. Khitis uka katuqkiri uka Row-Level Security saltayi, sapa tabla sapa columna ullkaspa, ukat sapa muniri qillqkaspa jan ukax armkaspa. Sapa server-side códigon utjañataki diseñataw — janipuni navegadoran. IA codificación yänakax JavaScript bundle ukar apatax base de datus público uñtaywa. Aka artículox pakit llawi jikxatki uka JWT forma, kimsa IA yä patrón pakit lurirïni, jach'a hora jikxataña qhipan kun lurañasa, ukat usuarionak jan jikxatkañkam automáticamente escaneo ukar qhanañcha.

Service role llawi kunasa

Supabase pä llawi sapa proyecto apsu: anon llawi (publishable llawi sat machaq proyectonakan) ukat service_role llawi. Paypachas JSON Web Tokens proyectoman JWT secreto firmatawa. Mayjt'awix role demanda JWT carga ukan utji — anon público llawitaki, service_role maestro llawitaki. PostgREST, Supabase Storage, ukat Supabase Auth taqi mä saltaña-taqi modo apsupxi service_role demanda uñjaspasin.

Kun Supabase llawi jwt.io ukan decodifikaña ukat carga uñakipt'aña. Service-role JWT forma jan jan ukäki:

Service-role JWT decodifikat carga (aksa pataka uñkattat sintaxis bloqueataw).

json
{
  "iss": "supabase",
  "ref": "[project-ref]",
  "role": "service_role",
  "iat": 1700000000,
  "exp": 2000000000
}

Machaq Supabase proyectonakax secreto formani llawi sb_secret_ prefijoni apsupxi janit JWT. Comportamientux pachpaki — kunti sb_secret_ público bundle ukan apatak pachpa catastrófica.

Kunjam IA codificación yänakax service role llawi jaltayi

Pachpa kimsa patrón waranqa vibe-code aplicación uñjapxta. Sapaqatax mä desarrollador IA yä ayni mayisin qalltañi ukat tukusiwa service llawi mä bundle ukan inlinemp.

Patrón 1: Mä sapa .env archivu NEXT_PUBLIC_ prefijoni

Desarrolladorax IA yä mayi "Supabase configurar" sasin ukat mä sapa .env paypach llawi katuqi. IA yä — taqi NEXT_PUBLIC_* ukamp medio ambiente variable apkatax corpus ukan jiwasayatax — paypach NEXT_PUBLIC_ ukamp prefijo uchi. Next.js ukax kun aka prefijomp uñtataykix client bundle ukar build pacha inline. Vercel ukar apaña, ukasti service llawi main.[hash].js ukan utji.

Patrón 2: Pakit llawi createClient llamañan

Desarrolladorax paypach llawix IA generata config.ts archivu ukar pegaña, ukat IA navegador-lado createClient() llamaña process.env.SUPABASE_SERVICE_ROLE_KEY uka pantjayasin uñtayi. Buildax variable apsuyi, ukat JWT bundle ukan apkati.

Patrón 3: Service-role llawi seed scripts ukan hardcode

Desarrolladorax IA yä mayi mä script base de datus seedañataki qillqañ. IA service-role llawi directamente archivuru hardcode (janit medio ambient ukat ullasin), archivu repositoriora commit, ukat repositorio público GitHub jan ukax apsuyat aplicación /scripts/seed.js rutax llawi jichha churañaki.

Kunjam FixVibe bundle escaneo jaltayi katu

FixVibe bundle-secrets verificación sapa JavaScript archivu apsuyat aplicación referencianita downloadi — entry chunks, lazy-loaded chunks, web workers, service workers — ukat mä detector ukan apsuyi kunatix JWT forma decodifikki (eyJ[base64-header].eyJ[base64-payload].[signature]) ukar. Decodifikat carga "role": "service_role" apkatkpan, escaneox mä jach'a wakichäw archivo ruta ukat exacto línea llawi utjki ukamp informi. Pachpa verificación machaq sb_secret_* patrón prefijomp uñtatayi.

Escaneox jan jikxatat llawimpix autentikitti. Forma jikxati ukat jaltäwi informi — llawi apnaqasin explotabilidad qhanañchañax base de datus illa accesowa. Pruebax JWT carga pachpan utji.

Jikxatata — kuns nayrïr horan lurañani

Mä jaltayat service role llawi mä runtime emergencia. Llawix scrape ratawa amuyaña — atacantenakax bundles público real pachan watyiri uñjapxi. Base de datus comprometida ukham apsuyam llawix rotaya ukat jichha actividad auditkañkamax.

  1. Llawi jichhakipan rotaña. Supabase Dashboard ukan, Proyecto Configuración → API → Service role llawi → Reset apnaqaña. Nayrïr llawix segundo ukar invalidita. Kun servidor-lado código llawi apnaqki uka aktualisañ ukat redespliegañ rotación apsuyat nayratak.
  2. Jichha base de datus actividad auditaña. Dashboard ukan Base de Datos → Logs jist'araña. 7 jichh ur uñakipaña. Wali jaqis SELECT * consulta PII tabla, jach'a UPDATE jan ukax DELETE arusiwinaka, ukat IPs uñt'at infraestructura ankaxat petición uñakipt'aña. Supabase x-real-ip cabecera sapa peticionan registri.
  3. Storage objectos uñakipt'aña. Storage → Logs ukar saraña ukat jichha archivu downloads uñakipt'aña. Mä jaltayat service-role llawix privado buckets ukar saltayi-taqi acceso churi.
  4. Llawi código control ukat apsuyaña. Rotación qhipasa, JWT git historian utjañaki repositorio público ukan jikxatasiñkaspa. git filter-repo jan ukax BFG Repo-Cleaner apnaqaña historiat apsuñataki, ukat fuerza apnaqaña (colaboradornakar nayrak yatiyaña).
  5. Askichäwi qhipa wasitat escaneaña. Mä FixVibe escaneo machaq redespliegata aplicación ukar apnaqaña. Bundle-secrets jikxatäwix qhanawxani. Confirmaña jan kun service_role JWT ukat jan kun sb_secret_* cadena kun chunk ukan utji.

Jaltäwi nayrak jark'aqaña

Estructural askichäwi sutix disciplina chimpu yä-nivel barandillanakawa:

  • Janipuni service llawi NEXT_PUBLIC_*, VITE_*, jan ukax yaqha bundle-inlinañ prefijoni qillqaña. Nominación convención mä taypi — sapa framework respetawa.
  • Service llawi tilxa .env ukat desarrollador máquina ukan apsuyaña. Secret manager (Doppler, Infisical, Vercel encriptada env var) ukat ullaña deploy ukan, janipuni local commit.
  • <strong>Mark every Supabase client construction with explicit context.</strong> Files named <code>supabase/browser.ts</code> use the anon key; files named <code>supabase/server.ts</code> use the service-role key with <code>import 'server-only'</code> at the top. The <code>server-only</code> import causes a build error if a client component tries to consume the module.
  • <strong>Add a pre-commit hook that greps for JWT-shaped strings.</strong> <code>git diff --staged | grep -E 'eyJ[A-Za-z0-9_-]+\.eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+'</code> catches both anon and service tokens before they leave your machine.
  • CI gate uchaña kun build apsu escaneki. next build qhipasa, .next/static/chunks/ apsu grep service_role cadena. Pakit buildat qhipan apsuña kun uñtataykpan.
bash
# Pre-commit hook: refuse any staged JWT-shaped string.
git diff --staged \
  | grep -E 'eyJ[A-Za-z0-9_-]+\.eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+' \
  && echo "JWT detected in staged changes — refusing commit" \
  && exit 1

# CI gate: fail the build if "service_role" shipped to the static bundle.
grep -RE 'service_role|sb_secret_' .next/static/chunks/ \
  && echo "Service-role credential leaked into bundle" \
  && exit 1

Jichhar jiskt'awinaka

¿Kawkjir atacantenakax verdaderament jaltat Supabase service-role llawi jikxatapxi?

Público-bundle escáneres machaq despliegues minuto uka manqhan apnaqapxi. Investigadornakax machaq Supabase proyectonakar exploits irnaqayata documentapxi pä hora manqhan nayrïr deploy ukat. Kun service-role qhanstayata ukax mä 60-minuto ventana ukham amuyaña, janit 60-uru.

¿Rotación phuqayawa, jan ukax datos extracción amuyañaxa?

Rotación jaltayat llawi invalidi ukasti janit datos jichhakipat surti uskuyki. Tablan PII, pago datos, jan ukax kun regulada datos utjkpan, GDPR (72 hora), CCPA, jan ukax HIPAA ukan jach'a obligación yatiyañani. Logs auditi ukat legal consejo uñakipayaña audit imantata acceso uñacht'ayki ukax.

¿RLS jark'aqkitti service-role llawi jaltkpan?

Janiwa. Row-Level Security service_role demanda ukamp tukut saltatawa. Ukax diseñotaki — llawix backend código RLS admin lurañataki saltayañ utji ukatakix. Mitigaciónax atacante uka ullkañkam llawix jan k'ach'ar puriñapatakwa.

¿Aka machaq Supabase publishable / secret llawi modelo (<code>sb_publishable_</code> / <code>sb_secret_</code>) uka ukar irnaqkitti?

Iya — pachpa wakichawi clase. sb_secret_* llawix machaq secret-key formato kawkirix machaq proyectotaki service-role JWT pachpawanaki. Kunatix sb_secret_* bundle ukan apatax pachpa catastrófica mä jaltayat service-role JWT. FixVibe bundle-secrets detector paypach formas uñtatayi.

¿Anon / publishable llawitax — bundle ukan jark'atayi?

Iya, diseñotat. Anon llawix navegador ukan utjañatakiwa diseñatawa ukat sapa Supabase web cliente apnaqi. Jark'aqasiwix RLS kun público tablan walikipata configura. Supabase RLS escáner artículo uñakipt'aña kun verifikañataki.

Qhipa lurawinaka

Mä FixVibe escaneo production URL ukar apnaqaña — bundle-secrets verificación inaki, jan registro, ukat service_role qhanstayata mä minutot juk'an informi. Supabase RLS escáner artículo ukamp tantasiñ irnaqaña RLS layer iyaw lurañ ukat Supabase storage bucket jark'aqaña checklist archivu acceso jist'antañataki. IA yänakax kun pakit clase fiable generi ukat fundament uñakipt'añataki, Kunatix IA codificación yänakax jark'aqaña pakitäwinak ki̥yanaqi ullaña.

// baas superficie escaneaña

Yaqha jaqix jikxatkañkam jist'arata tabla jikxataña.

Mä production URL apsuma. FixVibe aplicacionax kawkïr BaaS proveedornakampis arsi uka enumeri, jupanakan endpoints público huellanakap luri ukat kun mä cliente jan autenticado ulläspa jan ukax qillqaspa uka informi. Inakiwa, jan instalañani, jan tarjetani.

  • Inaki plan — 3 escaneo phaxsin, jan tarjetampi registro.
  • BaaS huellanakax pasivut — jan dominio verificación munki.
  • Supabase, Firebase, Clerk, Auth0, Appwrite ukat juk'amp.
  • IA askichañataki prompts sapa jikxatäwina — Cursor / Claude Code ukan pegaña.
Supabase service role llawi JavaScript ukan qhanstayata: kun saña ukat kunjam jikxataña — Docs · FixVibe