10 grešaka početnika u vibe codingu (sa stvarnim slučajevima)
Deset grešaka koje se ponavljaju kod aplikacija napravljenih uz AI, svaka sa stvarnim slučajem i rečenicom koja je sprečava.
Izaberi iznos ili skeniraj kod bez iznosa pa ga upiši u banci. Novac ide direktno na račun autora (GoSimple), Trek ne uzima ništa i nije posrednik u plaćanju.
Na telefonu: preuzmi kod, pa ga u aplikaciji banke učitaj iz galerije.
Ažurirano: 12.10.2026. | Verzija 1.0
Svaka greška na ovom spisku ima dokumentovan slučaj iza sebe, najčešće javno opisan od onoga kome se desila. To nije spisak straha nego spisak stvari koje se zatvaraju jednom rečenicom u zahtevu.
1. Baza bez pravila pristupa
Šta se desi: tabela se čita iz pregledača javnim ključem, bez ikakvog pravila. Istraživač koji je to opisao našao je aplikacije u kojima se mogla pročitati tabela korisnika, ključevi drugih servisa, a u nekima i izmeniti red o statusu plaćanja.
Sprečava se: „Uključi zaštitu na nivou reda na svakoj tabeli i napiši posebne politike za čitanje, upis, izmenu i brisanje."
2. Ključ baze u kodu koji ide u pregledač
Šta se desi: jedna poznata platforma imala je ključ baze ugrađen u kod koji se šalje korisniku. Posledica je bila pristup sa punim ovlašćenjima: milion i po pristupnih tokena, desetine hiljada adresa e-pošte i hiljade privatnih poruka, uz mogućnost izmene objava. Osnivač je ranije javno rekao da je napravljena vibe codingom.
Sprečava se: „Nijedan tajni ključ ne sme da ima javni prefiks ni da se nađe u kodu koji ide u pregledač. Izlistaj mi sve promenljive okruženja i reci koje su izložene."
3. Prijava proverena samo u pregledaču
Šta se desi: lozinka ugrađena u kod strane, a stanje prijave u lokalnom skladištu pregledača, koje napadač jednostavno postavi na „prijavljen".
Sprečava se: „Svaku serversku akciju i rutu tretiraj kao javno dostupnu i u njoj posebno proveri korisnika."
4. Tajne u prednjem delu, pa račun
Šta se desi: osnivač je objavio proizvod napravljen bez ijedne ručno napisane linije koda. U roku od dva dana zaobiđene su pretplate, menjani su podaci i iscrpljeni ključevi koje je držao u prednjem delu aplikacije. Ispravke su kvarile druge delove, a proizvod je ugašen za nedelju dana.
Sprečava se: isto kao u drugoj tački, plus ograničenje potrošnje na svakom servisu koji naplaćuje po pozivu.
5. Oslanjanje na bezbednost same platforme
Šta se desi: na jednoj platformi su nađene dve nedokumentovane adrese koje nisu tražile prijavu, a bio je dovoljan javni identifikator aplikacije da se neko sam registruje na privatnu aplikaciju i zaobiđe prijavu preko firme. Pogodilo je i alate za ljudske resurse sa ličnim podacima.
Sprečava se: ne držite osetljive podatke u alatu samo zato što je aplikacija označena kao privatna. Pitajte šta se dešava ako neko sazna identifikator.
6. Ponovno obaveštenje shvaćeno kao nova uplata
Šta se desi: obrada potvrde o plaćanju trajala je predugo, platni sistem je devet sekundi kasnije poslao isto obaveštenje, i nastao je drugi nalog za istog kupca. Podaci su se podelili, kupac je otkazao.
Sprečava se: „Zapamti identifikator događaja, preskoči već obrađene i dodaj jedinstveno ograničenje u bazi." Detaljno u zasebnom tekstu.
7. Testovi koji šalju događaj tačno jednom
Šta se desi: agent je napisao obradu plaćanja koja je prošla i pregled i automatske provere, jer su testovi svaki događaj slali jednom. U stvarnom radu, kad je stigao dvaput, naplata je bila dvostruka.
Sprečava se: „Napiši test u kojem isti događaj stiže dva puta i test u kojem događaji stižu van redosleda."
8. Agent koji „sređuje" pa obriše
Šta se desi: jedan alat je pri premeštanju fajlova pretpostavio da odredišni folder postoji. Nije postojao, pa je lanac premeštanja prepisao sve osim jednog fajla. Oporavak nije uspeo.
Poznatiji slučaj: agent je tokom zamrzavanja izmena obrisao živu bazu. Platforma je posle toga uvela automatsko razdvajanje razvojne i produkcijske baze.
Sprečava se: „Radi isključivo na razvojnoj bazi" plus stvarna dozvola, ne samo rečenica. Pravila u promptu nisu kontrola.
9. Vraćanje verzije pomešano sa rezervnom kopijom
Šta se desi: mislite da ste zaštićeni jer alat ima vraćanje na raniju verziju. Vraćanje u pravilu ne dira bazu, osim ako to posebno ne označite. Kod se vrati, podaci ostanu izgubljeni.
Sprečava se: zaseban, zakazan izvoz baze koji odlazi van platforme.
10. Gomilanje ispravki umesto novog početka
Šta se desi: posle tri neuspele ispravke, razgovor je pun protivrečnih uputstava, agent gubi nit, a krediti nestaju. Dokumentacija jednog alata to i priznaje: čišćenje konteksta znači zaborav istorije, a ponavljano automatsko ispravljanje greške se ne preporučuje.
Sprečava se: posle dva neuspeha vratite se na poslednje ispravno stanje, obrišite razgovor i napišite zahtev iznova.
Koliko je ovo često
U skeniranju 30.998 živih aplikacija napravljenih u ovim alatima, objavljenom 19.8.2026, 57 odsto onih koje koriste Supabase i koje je bilo moguće proveriti dozvoljavalo je strancu da bez prijave pročita bar jednu tabelu. U 394 slučaja tabela se zvala korisnici, profili ili porudžbine. Četiri odsto je imalo objavljen tajni ključ.
Napomena o izvoru: skeniranje je radila firma koja prodaje nadzor baš za takve aplikacije. Sami navode da spoljna provera nije revizija.
Spisak za poslednju proveru
| Pre nego što pustite korisnike | Gotovo |
|---|---|
| Zaštita na nivou reda na svakoj tabeli | ☐ |
| Nijedan tajni ključ u pregledaču | ☐ |
| Provera korisnika u svakoj serverskoj akciji | ☐ |
| Ograničenje potrošnje na servisima koji naplaćuju po pozivu | ☐ |
| Webhook proverava potpis i otporan je na dupli dolazak | ☐ |
| Test u kojem isti događaj stiže dvaput | ☐ |
| Razvojna i produkcijska baza su razdvojene | ☐ |
| Zakazan izvoz baze van platforme | ☐ |
Česta pitanja
Da li se ovo dešava samo početnicima? Ne. Slučajevi u ovom tekstu uključuju i osnivače sa tehničkim iskustvom i platforme sa velikim timovima.
Koja greška je najskuplja? Izložena baza, jer znači prijavu curenja podataka i gubitak poverenja, a ne samo kvar.
Mogu li sve ovo da proverim bez programera? Osam od deset stavki možete: anonimni prozor, izvorni kod strane, dvostruko slanje testnog događaja. Za preostale dve je bolje da neko pogleda.
Da li alati popravljaju ove stvari sami? Delimično. Posle poznatih slučajeva uvedena su razdvajanja okruženja i provere pri objavljivanju, ali se osnovne stvari i dalje ne rade ako se ne zatraže.
Šta prvo da uradim ako aplikacija već radi? Pravila pristupa bazi i ključeve. To su dve stavke koje nose najveći deo rizika.
Sledeći korak
Prođite spisak iznad danas. Za prve dve stavke postoje detaljna uputstva u tekstovima o pravilima pristupa i o rupama koje AI ostavlja.
GoSimple · Ivan Dabetić
Izvori (provereno 12.10.2026)
- Opis propusta sa pravilima pristupa: https://mattpalmer.io/posts/CVE-2025-48757/
- Ključ baze u kodu koji ide u pregledač: https://www.wiz.io/blog/exposed-moltbook-database-reveals-millions-of-api-keys
- Česti propusti u aplikacijama napravljenim uz AI: https://www.wiz.io/blog/common-security-risks-in-vibe-coded-apps
- Slučaj proizvoda ugašenog za nedelju dana: https://www.indiehackers.com/post/tech/vibe-coding-has-a-security-problem-vLxyPTrTlZVwDo76oqvr
- Propust na nivou platforme: https://www.wiz.io/blog/critical-vulnerability-base44
- Opisan slučaj duple obrade plaćanja: https://dev.to/alexcloudstar/stripe-webhooks-in-production-idempotency-retries-and-the-mistakes-that-cost-me-real-money-5haf
- Agent koji je prepisao fajlove: https://github.com/google-gemini/gemini-cli/issues/4586
- Vraćanje verzije i baza: https://docs.replit.com/replitai/checkpoints-and-rollbacks
- Skeniranje 30.998 aplikacija: https://reeve.page/research/vibe-coded-app-security-2026
- Preporuke proizvođača o bezbednosti: https://docs.lovable.dev/tips-tricks/security-best-practices