Most adtad ki az első appodat. Lehet, hogy ez egy eszköz, ami összefoglalja az e-mailjeidet, egy kis widget, ami a fotókból rajzfilmet készít, vagy egy kvíz, ami segít a gyerekednek helyesírásban gyakorolni. Elmondtad az AI-nak, mit szeretnél, az AI megírta a kódot, megnyomtad a „Deploy" gombot, és most a világ előtt van az alkotásod.
Ez az érzés fantasztikus. De ez egyben a pillanat is, amikor érdemes fél órára lassítani.
Az AI-val épített appoknak – amelyeket néha vibe-coded appoknak hívnak, mert az általad kitalált hangulatot írtad le, nem pedig soronként a kódot – van egy konkrét, fájdalmas hibamódjuk, amibe sok kezdő beleesik: egy API-kulcs (gondolj rá úgy, mint egy titkos jelszóra, ami lehetővé teszi az appodnak, hogy fizetős szolgáltatásokkal, például OpenAI-val vagy Anthropic-kal kommunikáljon) bent marad közvetlenül a kódban, a kód pedig nyilvános helyen található, és valaki megtalálja a kulcsot, és elkezdi használni. A számla másnap reggel megérkezik. Lehet, hogy több százezer forint. Lehet, hogy milliós nagyságrendű. Megesett már olyanokkal, akiknek fogalmuk sem volt róla, hogy a projektjük nyitva van.
Ez az útmutató végigveszi azt a hat ellenőrzést, amelyek bezárják a leggyakoribb lyukakat. Egyikhez sem kell programozói tapasztalat. Szükséged lesz egy fiókra azon a szolgáltatáson, amelyet az appod használ (OpenAI, Anthropic, Google Cloud stb.), és néhány percre, hogy végigkattintgass pár beállítást.
Egy gyors megjegyzés, mielőtt elindulunk: az AI-kódoló eszközök, mint a Cursor, Bolt, v0 és Replit, mind egy kicsit másképp működnek a motorháztető alatt. A gombok pontos neve változik, de az alapelv – „a titkokat tartsd távol magától a kódtól" – mindenhol ugyanaz. Ha egy lépés nem pontosan illeszkedik az eszközödre, az elv akkor is érvényes.
1. lépés – Keresd meg az összes titkot, ami elbújhat a kódodban
Nyisd meg a projekted fájljait, és keress bármit, ami kulcsra emlékeztet. A leggyakoribb minta egy hosszú, véletlenszerű betűkből és számokból álló sor, ami egy key, token, secret vagy api szó mellett ül.
A legtöbb szerkesztőben nyomd meg a Ctrl+F billentyűkombinációt (vagy Cmd+F-et Macen), és keress az sk- karakterláncra – ez az OpenAI kulcsainak előtagja, és ez a leggyakoribb árulkodó jel. Próbáld ki még az api_key, API_KEY, OPENAI_API_KEY és az sk-ant- (ez az Anthropic előtagja) kereséseket is.
💬 Példa sor, amit találhatsz: openai.api_key = "sk-abc123xyz..."
Akkor tudod, hogy sikerült, ha vagy nincs találat, vagy találtál legalább egy egyezést, és készen állsz cselekedni (ami a következő lépés).
Ha találsz egy kulcsot: ne pánikolj, és ne másold be csevegésbe, hogy megkérdezd, „veszélyes típusú-e" – feltételezd, hogy minden, a kódodban ülő kulcs nyilvános, és ugorj a 2. lépésre, hogy cseréld ki.
2. lépés – Helyezd át az összes titkot környezeti változóba
A környezeti változó egy olyan beállítás, amelyik a kódon kívül, egy külön fájlban vagy egy irányítópulton él, és a kódod futásidőben olvassa be. Gondolj úgy a különbségre, hogy a házad kulcsa a bejárati ajtóra van írva (bárki láthatja, aki elhalad mellette), vagy a zsebedben van (továbbra is hozzáférsz, de nincs kirakva).
A legtöbb AI-kódoló eszközben ez azt jelenti, hogy a projekt gyökerében létrehozol egy .env nevű fájlt, és oda teszed a kulcsodat:
💬 Példa: OPENAI_API_KEY=sk-your-key-here
Ezután a kódodban a változó nevére hivatkozol, nem pedig a tényleges kulcsot másolod be. A pontos szintaxis eszközönként változik, de a minta ugyanaz: a kód azt mondja, hogy „keresd meg a kulcsot a környezetben", nem pedig azt, hogy „itt van a kulcs".
A legtöbb vibe-kódoló eszköznek van egy módja is, hogy a felületén keresztül állítsd be ezeket a titkokat (keresd a „Secrets", „Environment" vagy „Vars" opciót az oldalsávban vagy a projektbeállításokban). Ha az eszközöd mindkét lehetőséget kínálja, használd az irányítópultost – nehezebb véletlenül nyilvános helyre commitolni.
Akkor tudod, hogy sikerült, ha a kódod már nem tartalmazza a tényleges kulcssort – csak a változó nevét –, és az appod ugyanúgy működik, mint korábban.
3. lépés – Ellenőrizd, hogy a kódod nyilvános-e
Az AI-kódoló eszközök gyakran alapértelmezetten nyilvános URL-re vagy nyilvános kódtárba teszik közzé a projektedet. Így lesz a „megosztom a munkám" ennyire egyszerű. Ugyanakkor így találnak rá idegenek a kiszivárgott kulcsokra.
Nyisd meg a projektedet, és keresd a következő jelek bármelyikét:
- Egy nyilvános URL (valami ilyesmi:
te-neved-tool.example.com) - Egy GitHub vagy GitLab repository, ami nyilvánosnak van jelölve
- Egy „Share" vagy „Deploy" gomb, ami azt mondja, hogy „Public"
Ha a projekted szándékosan nyilvános – mondjuk egy nyílt forráskódú eszköz –, az rendben van, de ez még fontosabbá teszi az 1. és 2. lépést. Ha véletlenül lett nyilvános, és nem így tervezted, változtasd meg a láthatósági beállítást most. A legtöbb platformon van egy „Private" kapcsoló, általában a projektbeállítások alatt vagy egy „Make private" linknél.
Akkor tudod, hogy sikerült, ha el tudod magyarázni egy barátodnak, hogy valaki hogyan tudná (vagy nem tudná) a tudtod nélkül megnézni a kódodat.
4. lépés – Állíts be költési limitet a használt szolgáltatáson
Ez a legfontosabb lépés, és ezt hagyja ki a legtöbb kezdő vibe-kódoló.
Minden nagyobb AI-szolgáltatásnak van egy számlázási oldala, ahol be tudsz állítani egy kemény felső korlátot arra, amit felszámolnak. Ha egy ellopott kulcsot arra használnak, hogy több ezer drága kérést futtasson, azt szeretnéd, hogy a szolgáltatás az első pár dollár után azt mondja, hogy „nem", nem pedig a hónap végén.
Keress a „Billing" vagy „Plans" opcióra a fiókbeállításokban, majd keresd meg a „Usage limit" vagy „Monthly cap" kapcsolót. A pontos útvonal szolgáltatásonként változik, de az elv ugyanaz: válassz egy összeget, amit elveszíthetnél, állítsd be kemény limithet, és kapcsold be az e-mailes értesítéseket a szokatlan tevékenységről.
💬 Példa prompt, amit az AI-eszközödnek küldhetsz: „Find where I can set a monthly spending limit on my OpenAI account and walk me through the steps."
Akkor tudod, hogy sikerült, ha a limit látható az irányítópulton, és be vannak állítva e-mail-értesítések legalább a keret 50%-ánál és 90%-ánál.
5. lépés – Cseréld ki az összes kulcsot, ami valaha is a kódodban volt
Ha találtál egy kulcsot az 1. lépésben, tekintsd kompromittálódottnak – még akkor is, ha a repód privát volt. Az emberek osztanak meg linkeket, készülnek képernyőképek, és a „privát" néha nem az igazi.
A kulcs rotálása (cseréje) nem jelent mást, mint hogy generálsz egy újat, és törlöd a régit. A szolgáltatás irányítópultján keresd az „API keys" opciót, kattints a „Create new key" gombra, másold ki az újat, és tedd a .env fájlodba vagy a titkok irányítópultjára. Ezután térj vissza a szolgáltatáshoz, és töröld a régi kulcsot.
A régi kulcs a törlés pillanatában leáll. Az addigi új költségek még a számládon maradnak – pontosan ezért jön a 4. lépés az 5. előtt. A költési limit az, ami korlátozza a kárt; a rotálás az, ami megállítja a továbbiakat.
Akkor tudod, hogy sikerült, ha a régi kulcs „invalid" vagy „revoked" hibát ad, ha megpróbálod használni, és az appod továbbra is működik az új kulccsal.
6. lépés – Adj hozzá egy alapvető sebességkorlátot az appodhoz
A sebességkorlát (rate limit) egy olyan szabály, ami azt mondja: „egy felhasználótól percenként legfeljebb X kérés". Nélküle akár egy törvényes felhasználó is, akinek lassú az internetkapcsolata, véletlenül több ezer API-hívást indíthat.
Ha AI-kódoló eszközt használtál, az AI valószínűleg nem tett hozzá sebességkorlátot, hacsak kifejezetten nem kérted. Egyetlen prompttal orvosolhatod – nyisd meg a projektedet, és írj valami ilyesmit:
💬 Példa prompt: „Add a rate limit so any single user can make at most 20 requests per hour. Return a friendly error message if they go over."
Az AI ki fogja találni, hogy hova kell beilleszteni. Sok AI-kódoló eszköznek van egy beállítási panelje is, ahol kódmódosítás nélkül, projektszinten állíthatsz be sebességkorlátot.
Akkor tudod, hogy sikerült, ha megpróbálsz egymás után 30 kérést indítani a saját appodból, és az utolsó 10-et egy kedves üzenettel blokkolja, ahelyett, hogy átengedné.
Gyakori hibák, amiket kerülj el
- Bemásolni egy kulcsot csevegésbe, hogy „teszteld, működik-e". Most már egy másik rendszerben van, valószínűleg naplózva. Inkább rotáld a kulcsot – soha ne írj be valódi kulcsot beszélgetésbe.
- „Lágy" költségvetési riasztást beállítani kemény limit helyett. A riasztások szólnak, hogy valami történik; a limitek megállítják. Használd mindkettőt, de a limit az, ami ténylegesen pénzt takarít meg.
- Elfelejteni, hogy a
.envfájl különleges. A legtöbb AI-kódoló eszköz tudja, hogy a.envfájlokat ki kell hagyni a kód publikálásakor. Ha a tiéd nem, add hozzá a.envszót egy.gitignorenevű fájlhoz, hogy a titkok soha ne kerüljenek véletlenül commitolásra. - Azt feltételezni, hogy a „privát repo" örökre „biztonságos". A repók láthatósága változhat, a linkeket megosztják, képernyőképek készülnek. Az 1–5. lépések szokásai a jelenlegi adatvédelmi beállításodtól függetlenül számítanak.
Mit jelent ez számodra
- Ha személyes projektet építesz: még egy „csak szórakozásból" készülő eszköz is milliós számlát generálhat, ha kiszivárog egy kulcs. Az a 30 perc, amit ez a hat lépés igénybe vesz, a legolcsóbb biztosítás, amit valaha megveszel.
- Ha valami olyat építesz a vállalkozásodhoz vagy mellékprojektedhez: kezelj az appodat úgy, mint bármely más terméket. A költési limitek, a kulcsrotálás és egy gyors monitorozási ellenőrzés ugyanúgy helyet kapnak az indítási checklisteden, mint az, hogy „működik a link".
- Ha most kezded, és ez az egész soknak tűnik: csináld meg ma az 1., 2. és 4. lépést. Már ez a három is lefedi a leggyakoribb katasztrófát. A többi várhat a második projektedig.
Összefoglalás
A vibe-kódolás figyelemre méltó módja annak, hogy valódi dolgot építs anélkül, hogy előbb megtanulnál kódolni. A trade-off az, hogy öröklöd azokat a felelősségeket is, amelyeket a legtöbb fejlesztő évek alatt tanul meg – és ezek egyike, hogy a titkokat titokban tartsd. Hat gyors ellenőrzés, fél óra, és bezártad azokat az ajtókat, amelyekbe a legtöbb kezdő belesétál.
A következő lépésed: nyisd meg a projektedet most azonnal, és végezd el az 1. lépést. Keress rá az sk--ra. Bármit is találsz, már nyertél – mert most már ki tudod javítani.
