Trek
Početna
Rubrike
Nalog
Trek
podrska@gosimple.space © 2026 Trek · gosimple.agency
Trek

Supabase RLS za početnike: da baza ne bude javna

Zaštita na nivou reda u Supabase bazi, objašnjeno bez žargona: dva sita kroz koja prolazi svaki upit, najčešće greške i kako da danas proverite svoju bazu.

Kratak odgovor

Zaštita na nivou reda sprečava da vaša baza podataka bude javno dostupna. Ona funkcioniše kroz dva sita koja proveravaju dozvole za operacije i pristup redovima.

Dugačak hodnik između redova serverskih ormara sa mrežastim vratima u modernom centru za obradu podataka

Ažurirano: 12.10.2026. | Verzija 1.0

Kad aplikaciju pravi AI alat, baza se najčešće otvori prema internetu, a pravilo o tome ko sme da vidi koji red ostane isključeno. Rezultat je tabela koju svako sa adresom vaše aplikacije može da pročita, a ponekad i da izmeni.

Koliko je to često: u pregledu objavljenom 1. oktobra 2026. skenirano je oko 300.000 domena koji koriste Supabase, i pronađeno je 16.326 baza sa tabelama koje se čitaju spolja. Više od polovine imalo je naznake ličnih podataka. Nije u pitanju propust u Supabase-u, nego podešavanje pojedinačnih aplikacija.

Ovaj tekst objašnjava šta je zaštita na nivou reda, zašto baš aplikacije napravljene uz AI upadaju u ovu rupu, i kako da u narednih petnaest minuta proverite svoju.

Zašto baš AI aplikacije

Postoji detalj koji objašnjava skoro sve. Tabela koju napravite kroz vizuelni uređivač u Supabase-u dobija zaštitu podrazumevano. Tabela koju neko napravi programski, preko SQL-a ili API-ja, ne dobija je.

Agent uvek pravi tabele programski.

Dva sita, ne jedno

Većina objašnjenja preskoči ovo, pa ljudi misle da su zaštićeni jer su napisali politiku. Svaki upit prolazi kroz dve provere.

Dva sita kroz koja prolazi upit nad tabelom Prvo sito je dozvola koja kaže sme li uloga uopšte da radi tu operaciju. Drugo sito je politika koja kaže nad kojim redovima. Ako je zaštita na nivou reda isključena, drugo sito ne postoji i prolaze svi redovi. Put jednog upita do vaših podataka Zahtev iz pregledača Javni ključ Sito 1 Dozvola Sme li uloga uopšte ovu operaciju Sito 2 Politika Nad kojim redovima tačno Podaci Kad je zaštita na nivou reda isključena Sito 2 ne postoji. Ko prođe prvo sito, dobija sve redove u tabeli. Kad politika postoji, a zaštita je isključena Najpodmuklije stanje. Politika je napisana, deluje da je posao urađen, a ne primenjuje se ni na šta. Supabase to prijavljuje kao posebno upozorenje u savetniku za bezbednost.
Politika bez uključene zaštite je kao brava koja stoji pored vrata. Postoji, ali ne drži ništa.

Zvanična dokumentacija to kaže kratko: tabela u izloženoj šemi bez zaštite na nivou reda može da se čita i menja od svake uloge koja ima dozvolu. Zato je pravilo da se zaštita uključuje na svakoj tabeli u izloženoj šemi, a na starijim projektima dodatno povuku i dozvole, jer politike same po sebi ne ukidaju dozvole.

Javni i tajni ključ, razlika koja odlučuje

Supabase je u međuvremenu promenio imena ključeva, pa ćete naići na oba naziva.

KljučNovo imeGde smeŠta radi
Javnisb_publishable_… (ranije anon)U pregledaču, aplikaciji, svudaRadi pod pravilima koja ste napisali
Tajnisb_secret_… (ranije service_role)Isključivo na serveruZaobilazi sva pravila pristupa

Dokumentacija je ovde nedvosmislena: tajni ključ se nikad ne stavlja u pregledač, u isporučenu aplikaciju ni u sistem za verzije. U primeru fajla sa promenljivama stoji i upozorenje da se takvoj promenljivoj ne sme dodati javni prefiks, jer će je alat za pakovanje ugraditi u kod koji ide korisniku.

Jedna nijansa koju vredi znati: tajni ključ zaobilazi pravila samo kada zahtev ne nosi korisnički token. Ako ga nosi, primenjuju se politike tog korisnika.

Supabase je najavio da ukida stare nazive ključeva do kraja 2026, a pravljenje novih ne gasi stare, pa se stari moraju ručno isključiti.

Pet grešaka na koje dokumentacija izričito upozorava

  1. Pogled (view) zaobilazi zaštitu. Pogledi se podrazumevano izvršavaju sa pravima vlasnika, pa prikažu više nego što bi smeli. Rešava se podešavanjem da se izvršavaju u ime pozivaoca.
  2. Funkcija sa pravima tvorca. Takva funkcija radi sa privilegijama onoga ko ju je napravio. Ne pravi se u izloženoj šemi, a putanja pretrage mora biti prazna.
  3. Provera korisnika koja tiho propada. Kad zahtev nije prijavljen, identifikator korisnika je prazan, pa poređenje tiho ne vrati ništa umesto da odbije pristup. Treba izričito proveriti da identifikator nije prazan.
  4. Politika koja važi za sve. Uslov koji je uvek tačan čini redove javnim. To ima smisla samo za stvarno javne podatke.
  5. Autorizacija na osnovu podataka koje korisnik sam menja. Deo profila korisnika je takav da ga korisnik može izmeniti, pa se po njemu ne sme odlučivati o pravima.

Dodatno: politike se pišu posebno za čitanje, upis, izmenu i brisanje, a ne jednom za sve operacije. Izmena traži i odgovarajuću politiku za čitanje.

Kako da proverite svoju bazu danas

Ovo traje petnaest minuta i ne zahteva programiranje.

  1. Otvorite savetnika za bezbednost u Supabase okruženju. On prijavljuje tačno ova stanja, sa imenima pravila. Najvažnija su ono koje prijavljuje tabelu bez zaštite, ono koje prijavljuje politiku uz isključenu zaštitu, i ono koje prijavljuje pogled sa pravima vlasnika.
  2. Pogledajte izvorni kod svoje strane u pregledaču i potražite ključeve. Javni ključ tu sme da bude, tajni ne.
  3. Otvorite aplikaciju u anonimnom prozoru i pokušajte da dođete do podataka drugog korisnika.
  4. Tražite od AI alata spisak, ne izmenu: „Izlistaj sve tabele, da li je na svakoj uključena zaštita na nivou reda i koje politike postoje. Ništa nemoj da menjaš."
  5. Tek onda tražite ispravku, tabelu po tabelu.

Ako koristite savetnika preko komandne linije ili MCP veze, ista provera postoji i tamo.

Kako se piše zahtev AI alatu

Nemojte tražiti „neka bude bezbedno". U akademskom testu, opšti bezbednosni nagoveštaj nije poboljšao rezultat. Radi konkretan spisak.

Za tabelu porudzbine uključi zaštitu na nivou reda i napiši četiri
odvojene politike: čitanje, upis, izmena, brisanje. Pravilo je da
korisnik vidi i menja samo svoje redove, a da neprijavljen korisnik
ne vidi ništa. Posebno proveri slučaj kada zahtev nije prijavljen.
Kad završiš, izlistaj mi politike koje si napravio.

Česta pitanja

Da li je Supabase nebezbedan? Nije. Zaštita postoji i radi, ali mora da se uključi. Problem nastaje kad tabele pravi alat koji to ne uradi, a niko ne proveri.

Imam aplikaciju u izradi, da li je kasno? Nije, ali ne odlažite do objave. Uključivanje zaštite posle, kad već postoje podaci i kod koji ih čita, znači da ćete morati da proverite svaki ekran.

Da li zaštita usporava aplikaciju? Politika radi kao dodatni uslov u upitu. Na malim bazama se ne primećuje. Na velikim se piše pažljivo, uz odgovarajuće indekse.

Šta ako koristim Firebase ili neku drugu bazu? Princip je isti, samo se drugačije zove. Svaka baza koja se poziva iz pregledača mora da ima pravila na svojoj strani, jer sve što je u pregledaču korisnik može da promeni.

Kako da znam da sam zaista zaštićen? Jedini pouzdan način je proba: otvorite anonimni prozor i pokušajte da dođete do tuđih podataka. Ako ne uspete, zaštita radi.

Sledeći korak

Pustite savetnika za bezbednost na svom projektu pre nego što zatvorite ovu stranu. Ako nađete prijave, pročitajte i spisak ostalih propusta koje AI ostavlja.

GoSimple · Ivan Dabetić

Izvori (provereno 12.10.2026)

  • Supabase, zaštita na nivou reda: https://supabase.com/docs/guides/database/postgres/row-level-security
  • Supabase, savetnik za bazu i spisak pravila: https://supabase.com/docs/guides/database/database-advisors
  • Supabase, ključevi i njihova namena: https://supabase.com/docs/guides/api/api-keys
  • Pregled izloženih baza, oktobar 2026: https://www.upguard.com/blog/everything-everywhere-systemic-data-exposure-in-supabase-apps
  • SusVibes, bezbednosni nagoveštaj ne pomaže: https://arxiv.org/abs/2512.03262

Imaš pitanje za autora?

Pošalji ga direktno autoru (Trek). Odgovor stiže na tvoj imejl.

3 pregleda
Trek
Autor

Trek

0 pratilaca

Trek je poslovni magazin i platforma za autore: startapi, firme, inovacije, ekonomija, marketing, propisi i karijera. Pod ovim potpisom izlaze tekstovi redakcije, vodiči i analize koje ne potpisuje jedno ime.

Pitanja i odgovori

Zašto AI aplikacije često imaju javno dostupne baze?

AI agenti kreiraju tabele programski putem SQL-a ili API-ja, pri čemu one ne dobijaju podrazumevanu zaštitu kao tabele napravljene kroz vizuelni uređivač.

Kako funkcionišu dva sita zaštite u Supabase bazi?

Prvo sito proverava da li uloga sme da izvrši operaciju, dok drugo sito proverava nad kojim redovima se ta operacija može sprovesti.

Šta se dešava ako je zaštita na nivou reda isključena?

Ako je zaštita isključena, drugo sito ne postoji i svi redovi u bazi postaju dostupni za čitanje ili izmenu svakome ko ima adresu aplikacije.

Prijavi ovaj tekst redakciji
Prijave pregleda redakcija. Zloupotreba obrasca vodi u blokadu.

Komentari (0)

Budi prvi koji komentariše ovaj članak.

Ostavi komentar

Imaš nalog? Prijavi se ili nastavi preko Google-a, ili komentariši kao gost:

Stigao si do kraja ovog lanca čitanja.

Otkrij još tekstova