Vibe coding: primjena i ograničenja
ZavršenoPomozite ljudima da istražuju ideje uz AI. Na bankarskom prototipu naučite zašto pristup stvarnim podacima i API dozvole zahtijevaju dokaze o sigurnosti.
Objavljuje TaigaKako pišemo
Provjerite razumijevanjeBankarska kontrolna ploča radi s izmišljenim transakcijama. Kolega predlaže povezivanje stvarnog računa uz pristup samo za čitanje. Šta trebate uraditi?Uradite vježbu
Šta ćete naučiti
- Razlikujte istraživanje od odluke o izdanju.
- Prepoznajte odgovornosti koje nedostaju u uvjerljivoj demonstraciji.
- Odaberite sigurnu granicu za prvi eksperiment.
Dajte ljudima prostor za izradu softvera
CTO u velikoj organizaciji može pomoći većem broju ljudi da svoje znanje pretvore u ideje za softver. Pozovite ljude iz finansija, operacija, prodaje i inženjeringa. Dajte im vrijeme, sintetičke podatke, sandbox API-je i podršku.
Dopustite ljudima da koriste različite alate za istraživanje, uz jasne granice za instalaciju, račune i dozvoljene ulazne podatke. Alat za izradu aplikacija u pregledniku, asistent za kodiranje ili lokalni agent može im pomoći da testiraju ideju. Izbor alata ne daje dozvolu za učitavanje podataka kompanije ili povezivanje stvarnog sistema.
Objavite jednostavan postupak za predaju korisnog prototipa inženjerskom ili platformskom timu. Autor prototipa opisuje problem, primjer radnog toka i uočenu vrijednost. Ne mora postati tim za sigurnost i operativni rad usluge.
Utvrdite šta trebate naučiti
Vibe coding obično počinje opisom softvera koji želite. Prihvatate generisani kod i vidljivim rezultatom usmjeravate sljedeću promjenu. Izraz ima različita značenja. U ovom vodiču osoba koja usmjerava rad ne mora razumjeti svaku odluku o implementaciji.
Ova metoda može pomoći u učenju. Jednostavan interfejs može pokazati da postupak odobravanja ima previše koraka. Privremena skripta može pomoći u procjeni formata fajla. Prototip daje ljudima konkretan dizajn o kojem mogu razgovarati. To znanje možete zadržati i kada odbacite kod.
Prvo postavite pitanje s odgovorom koji možete uočiti. Naprimjer: „Može li voditelj tima razumjeti ovaj postupak odobravanja?“ Ovo pitanje ima jasan opseg. Zahtjev za izradu sistema za troškove obuhvata i zaštitu podataka, kontrolu pristupa, operativni rad i odgovornost.
Bankarski prototip napravljen u utorak
Razmotrite izmišljeni primjer. U utorak kolega iz finansija koristi Lovable da napravi kontrolnu ploču na osnovu izmišljenih bankarskih transakcija. Ona grupiše potrošnju i prikazuje neplaćene fakture. Tim sada može razgovarati o korisnom radnom toku.
Neko predlaže povezivanje bankovnog računa kompanije. To mijenja posljedice, čak i ako aplikacija i dalje nosi oznaku „prototip“.
Pristup za čitanje može otkriti stanje računa, historiju transakcija, imena klijenata ili reference plaćanja, zavisno od API-ja. Ako veza dozvoljava i plaćanja, greške mogu prenijeti stvarni novac. Potvrdite stvarni opseg dozvola; bankarska veza ne uključuje uvijek pristup plaćanjima.
Demonstracija ne potvrđuje da korisnik može vidjeti samo račune za koje ima ovlaštenje. Skriveno dugme ne provodi ograničenje dozvole. OWASP opisuje kako izostanak provjera računa ili zapisa može izložiti podatke drugog korisnika.
| Šta može zakazati? | Zašto je važno | Dokazi prije pristupa stvarnom sistemu |
|---|---|---|
| Privatni pristupni podatak za API pojavljuje se u kodu preglednika ili zapisnicima | Druga strana mogla bi koristiti njegove dozvole | Pregledajte obradu tajni; testirajte opoziv pristupa |
| Backend prihvata ID računa bez provjere prava pozivaoca | Jedan korisnik mogao bi čitati drugi račun | Testirajte odbijanje zahtjeva za podatke drugih korisnika i drugih računa |
| Zahtjev za plaćanje prekorači vremensko ograničenje i aplikacija ga ponovo pošalje | Ponovni pokušaj mogao bi stvoriti drugo plaćanje | Testirajte obradu ponovnih pokušaja i usaglasite rezultat s pružaocem usluge |
| Aplikacija šalje detalje transakcija neodobrenoj AI usluzi | Povjerljive informacije napuštaju odobrenu granicu | Pratite zahtjeve, zapisnike, primaoce i rokove čuvanja |
| Zavisnost postane ranjiva nakon pokretanja | Nepromijenjena aplikacija i dalje može zahtijevati sigurnosnu ispravku | Dodijelite odgovornost za stalno skeniranje, ispravke i provjeru raspoređivanja |
Za API-je za plaćanje, idempotentnost znači da ponovljeni zahtjev ne ponavlja namjeravani učinak. Stripe dokumentuje jednu implementaciju. Provjerite ponašanje, ograničenja i pravila ponovnih pokušaja stvarnog pružaoca usluge. Vraćanje aplikacije na prethodnu verziju ne poništava plaćanje koje je banka obradila.
Ovaj primjer nije dokaz nedostatka u alatu Lovable. Lovableove vlastite sigurnosne smjernice traže zaštićene tajne, provjere na serveru, testirane politike podataka i stalni pregled. Primijenite isti standard dokaza na svaki alat za izradu aplikacija, agenta ili ručno napisanu aplikaciju.
Provjerite pristup prije povezivanja stvarnih sistema
Nastavite testirati radni tok sa sintetičkim podacima i sandbox računima. Prije pristupa stvarnim sistemima, neka odgovorni za uslugu, sigurnost i platformu provjere aplikaciju i njeno radno okruženje.
Koristite postupak povezivanja koji je odobrila banka ili pružalac usluge. Dodijelite pristup samo potrebnim računima i samo potrebne dozvole. Čuvajte privatne pristupne podatke u odobrenom spremištu tajni, izvan promptova i koda preglednika. Odredite odobrenja i ograničenja plaćanja tamo gdje su plaćanja potrebna. Provjerite kako opozvati pristup, istražiti neuspjehe i odgovoriti na sumnjivu aktivnost.
Ove odluke moraju prethoditi unošenju povjerljivih podataka ili pristupnih podataka za stvarne sisteme. Čekanje formalnog produkcijskog izdanja može biti prekasno. Nastavite s granicama podataka i infrastrukturom velikih organizacija.
Odredite odgovornosti prije širenja upotrebe
Eksperiment s izmišljenim podacima može kratko trajati i imati malo korisnika. Kada drugi ljudi zavise od aplikacije, odredite odgovornosti za njenu upotrebu.
- Navedite odgovornu osobu.
- Utvrdite dozvoljene korisnike i podatke.
- Odredite odgovor na neuspjeh.
- Čuvajte izvorni kod i konfiguraciju u repozitoriju.
- Provjerite da druga osoba može pregledati i reproducirati sistem.
Ne treba svakoj skripti korporativna platforma. Lični alat za formatiranje bez osjetljivih podataka treba manje kontrola od aplikacije za odobravanje plaćanja. Procijenite posljedice greške. Provjerite možete li grešku otkriti i poništiti njene učinke.
Prije proširenja prototipa, odvojite ono što ste naučili o problemu od dokaza o implementaciji. Možete zadržati interfejs i zamijeniti unutrašnji kod. Možete ograničiti namjeravanu upotrebu. Prototip možete zadržati i kao privremeni eksperiment.
Planirajte rad na ranjivostima nakon demonstracije
Uspješna demonstracija može sakriti ozbiljan nedostatak u održavanju. Za zavisnost se može pojaviti novo upozorenje o ranjivosti bez ikakve promjene vašeg koda. Skeniranje pri izdavanju opisuje jedan trenutak.
Ako aplikacija ostane u upotrebi, neko mora nastaviti pronalaziti, procjenjivati i ispravljati ranjivosti. Ispravka mora stići u produkciju i proći provjeru. Skener bez ovog postupka odgovora ostavlja izloženost neriješenom.
Provjerite šta pružaju vaš stvarni alat i konfiguracija. Kasnije, stalno upravljanje ranjivostima objašnjava cijeli proces, uključujući neuspjela skeniranja i raspoređene verzije.
Neka sljedeću promjenu bude lako pregledati
Dajte agentu jednu malu promjenu s izričitim kriterijima prihvatanja. Navedite koje radnje agent može poduzeti. Pregledajte nastalu razliku u kodu. Izvršite provjere koje mogu odbiti pogrešnu implementaciju. Zadržite raspoređivanje kao posebnu odluku dok odgovornosti za izdavanje ne budu jasne.
NIST Secure Software Development Framework opisuje šire prakse sigurnog razvoja. Koristite ga kao referencu pri procjeni kontrola koje nedostaju. Ne morate zapamtiti okvir. Trebate utvrditi koji dokazi nedostaju prije nego što softver počne utjecati na druge ljude.
Uradite vježbu
Odaberite jednu funkciju iz nedavne demonstracije. 1. Zabilježite jedan rezultat koji je demonstracija potvrdila. 2. Zabilježite tri pitanja koja ostaju otvorena. 3. Dodijelite odgovornu osobu svakom pitanju. 4. Navedite konkretnu provjeru koja može otkriti svaki mogući neuspjeh. Nemojte koristiti „učinite to sigurnim“ kao zamjenu za konkretnu provjeru.
Preuzmite radni list (Markdown)Isključivanjem ove opcije briše se sav napredak sačuvan u ovom pregledniku.
Napredak ostaje u ovom pregledniku. Bez računa i praćenja.
Izvori i dodatno čitanje
- NIST: Secure Software Development Framework 1.1 ↗
- Lovable: Security best practices ↗
- OWASP: Broken Object Level Authorization ↗
- Stripe: Idempotent requests ↗