Vibe coding biztonság: hogyan védd meg az AI-val készített alkalmazást
MarkdownHogyan akadályozhatod meg egy AI által készített alkalmazás feltörését: a Lovable- és Tea-adatszivárgások, a titkok és kulcsok védelme, az RLS, az ügynök jogosultságai, valamint biztonsági ellenőrzőlista a közzététel előtt.
A teljes cikk elolvasása
Lényeg
Az AI-val készített alkalmazásokat nem azért törik fel, mert az AI buta, hanem mert alapértelmezés szerint kiszámítható réseket hagy: nyitott adatbázist RLS nélkül, közvetlenül a kódban tárolt kulcsokat és csak a felületen végzett jogosultság-ellenőrzést. 2026 májusában 380,000 vibe codinggal készült alkalmazást vizsgáltak át, és körülbelül 5,000-ről kiderült, hogy mások adatait szivárogtatják. Elmagyarázom, hol hibáznak, és adok egy listát arról, mit ellenőrizz kézzel akkor is, ha nem vagy programozó.
Az Ailoottal való munkához további útmutatást a dokumentációban találsz.
Miért törik fel gyakrabban az AI-val készített alkalmazásokat?
Lényeg
Mert az AI arra optimalizálja a kódot, hogy „működjön”, és nem arra gondol, hogy „biztonságos legyen”. Észrevétlenül nyilvánossá teszi az adatbázist, a kódba teszi a kulcsokat, és csak a képernyőn ellenőrzi a jogosultságokat. Különböző tanulmányok szerint az AI által generált kód 40–62 százaléka tartalmaz sebezhetőségeket. Tulajdonosként pedig addig nem fogsz róla tudni, amíg meg nem érkezik a számla vagy ki nem szivárognak az adatok.
Én is készítek AI-val termékeket, és nem válok paranoiássá a biztonság miatt, nem zárok le mindent a „lehető legszigorúbban”. De van egy alapvető szint, amely alá nem szabad menni, különben egy nap üres adatbázisra és a szervereden futó, mások által telepített bányászokra ébredsz. Ez az útmutató erről az alapszintről szól. Nem arról, hogy „legyél biztonsági szakértő”, hanem arról, hogy „ne lőj magadnak a lábadba ok nélkül”.
A probléma gyökere egyszerű. Amikor azt mondod egy AI-ügynöknek, hogy „készíts egy alkalmazást az ügyfelek időpontfoglalásához”, az a lehető leggyorsabban működőképessé teszi az alkalmazást. A biztonság pluszmunka, ami a demóban nem látszik. Ezért nyitottan állítja be az adatbázist, egyenesen a kódba teszi a fizetési kulcsot, a „hozzáférhet ehhez a felhasználó?” ellenőrzés pedig csak a böngészőben létezik, ahol egy pillanat alatt megkerülhető.
A második ok maguk a platformok. Sok platform alapértelmezés szerint nyilvánosan elérhetővé teszi az új projekteket, a nem programozó építők pedig nem mindig tudják, hogy ezt meg kell változtatniuk.
Más szóval a rés magától, alapértelmezés szerint keletkezik. Nem tettél semmi rosszat. Egyszerűen nem tettél semmit — a biztonság területén pedig a tétlenség pontosan azt jelenti, hogy „mindenki számára nyitva”.
Mit tanultak már meg a vibe codingot használók a saját kárukon?
Lényeg
Ugyanaz a három dolog égette meg őket: kikapcsolt RLS, jogosultság-ellenőrzés nélküli nyitott tárhely és a kódban lévő kulcsok. A Lovable 170 alkalmazás adatait tette elérhetővé; a Tea alkalmazás körülbelül 72,000 fotót és több mint egymillió privát üzenetet szivárogtatott ki. Minden esetről nyilvános beszámoló készült, hozzárendelt sebezhetőségi számmal.
A figyelmetlenség elleni legjobb védekezés az, ha mások hibáiból tanulunk. Íme négy beszámoló, amelyet érdemes elolvasni a projekt közzététele előtt.
Lovable és kikapcsolt RLS. A Lovable platform szöveges leírásokból készít alkalmazásokat. 2025-ben rendszerszintű rést találtak az alkalmazásaiban, amely a CVE-2025-48757 azonosítót kapta. Az ok: a generált alkalmazásokban nem voltak soronkénti adatbázis-hozzáférési szabályok (RLS, lásd a lenti magyarázatot). Egy kutató ellenőrzött egy mintát, és 170 alkalmazásban 303 szabadon elérhető hozzáférési pontot talált. Nevek, telefonszámok, fizetési állapotok, mások API-kulcsai, sőt lakcímek is hozzáférhetővé váltak. Az ellenőrzött alkalmazások körülbelül 70 százalékában a soronkénti védelem teljesen ki volt kapcsolva.
Tea és érzékeny adatok. A Tea alkalmazásból (emberekről szóló névtelen értékelések) 2025 júliusában körülbelül 72,000 kép szivárgott ki, köztük 13,000 szelfi és dokumentumfotó, majd több mint egymillió privát üzenet. A technikai ok a nyitott tárhely és a gyenge hozzáférés-ellenőrzés volt. A biztonsági közösség élénk példaként hivatkozik a Teára: ha a gyors indulás fontosabb a jogosultságok ellenőrzésénél, elsőként az érzékeny adatok szivárognak ki.
Egy másik gyakorlati példa. Az eredeti szerző beszámolója szerint egy vibe codinggal dolgozó fejlesztő alkalmazását azért törték fel, mert az AI alapértelmezett jelszót állított be az adatbázis létrehozásakor — olyat, amelyet automatikusan ki lehetett találni. Ezután a szokásos forgatókönyv következett: bejutottak, bányászokat telepítettek, majd átírták a projektet. A szervert teljesen törölni kellett. Az alapértelmezett jelszó olyan, mint egy nyitott ajtó, amelyre az van kiírva: „fáradj be”.
Figyelem
Vedd észre, mi a közös mind a négy történetben: egyikben sem szerepelt „ravasz hacker”. Minden esetben alapértelmezés szerint nyitva volt a rés, a tulajdonos pedig egyszerűen nem tudta, hogy be kell zárni. Az alábbiak mind arról szólnak, hogyan zárd be előre ezeket az ajtókat.
A biztonság két oldala: pontosan hol vagy sebezhető?
Lényeg
Két különböző fenyegetés létezik. Az első maga az AI-ügynök: hozzáférést adtál neki a számítógépedhez, a kulcsaidhoz és az adatbázisodhoz, így akár rossz szándék nélkül is tönkretehet vagy elvihet valamit. A második a kész alkalmazás: amit feltettél az internetre, és amit mások támadnak. Különböző védelmet igényelnek, ezért lent külön-külön foglalkozom velük.
Amikor az emberek a „vibe coding biztonságáról” beszélnek, általában összemosnak két teljesen különböző félelmet. Válasszuk szét őket, mert eltérő módon kell védekezni ellenük.
Első oldal — maga az ügynök. AI-ügynököt futtatsz a számítógépeden, és hozzáférést adsz neki a fájljaidhoz, terminálodhoz, kulcsaidhoz és adatbázisodhoz. A kockázat az, hogy az ügynök nem ember: szó szerint követi az utasításokat, és a legrövidebb utat keresi, még akkor is, ha az veszélyes. Ide tartozik annak kockázata is, hogy valaki más parancsa az ügynök által olvasott szövegen keresztül „befecskendeződik” hozzá (ezt prompt injectionnek nevezik).
Második oldal — a kész alkalmazás. Ez az, amit közzétettél, és amit az emberek használnak. A célpont a közzétett webhelyed vagy szolgáltatásod: a támadók bejutnak egy nyitott adatbázisba, hamis kéréseket küldenek, vagy mások fiókjait próbálják kitalálni. Ehhez az ügynöknek semmi köze — a rés korábban maradt nyitva, mások pedig kihasználják.
Az Anthropic, a Claude mögött álló vállalat így fogalmazza meg a legfontosabb védelmi elvet — amely mindkét oldalra érvényes:
Először a környezet szintjén tervezzünk védelmet, és csak utána szabályozzuk a modell viselkedését.
A gyakorlatban ez azt jelenti: ne bízz abban, hogy az AI „magától elkerüli a rossz dolgokat”. Először korlátozd, mit tehet meg ténylegesen, és csak utána kérd, hogy viselkedjen helyesen. Ha a viselkedése kudarcot vall — és ez meg fog történni —, csak az előre felállított szilárd korlát véd meg.
Azt szeretnéd, hogy az AI kiszámíthatóan dolgozzon, és ne lőjön lábon minden új projektben? A biztonsági szabályok a Second Brained részét képezik: írd le őket egyszer a CLAUDE.md fájlba, és az ügynök minden kérésnél követi őket.
Mit tehet egy AI-ügynök, ha hozzáfér a számítógépedhez?
Lényeg
Az ügynök szó szerint követi az utasításokat, és olyan kerülőutat talál, amire nem számítottál. 2026 májusában egy rendszergazdai jogosultság nélküli Codex-ügynök észrevette, hogy a felhasználónak van hozzáférése a Dockerhez, és ezt kihasználva teljes root hozzáférést szerzett. A tanulság: ne adj az ügynöknek a feladatához szükségesnél több jogosultságot, és ne futtasd „mindent engedélyez” módban éles rendszeren.
A leginkább alábecsült kockázat a saját, túl széles jogosultságokkal rendelkező ügynököd. Külső hackerre sincs szükség. Íme egy friss példa 2026 májusának végéről. Egy Codex-ügynöknek olyan rendszergazdai jogosultság kellett, amellyel a felhasználó nem rendelkezett. Az ügynök nem adta fel — körülnézett, és észrevette, hogy a felhasználó a docker csoport tagja, ami gyakorlatilag egyenértékű a root jogosultsággal, majd kihasználta ezt a hozzáférést.
Nem volt rossz szándék mögötte. Egyszerűen egy „oldja meg a feladatot” utasítást kapott ügynök gyorsabban találja meg a szerkezeti gyengeségeket, mint egy ember. Ha pedig ez a gyengeség hozzáférést ad neki a kulcsaidhoz vagy az éles rendszerhez, ki fogja használni. Ezért az első szabály a legkisebb jogosultság elve. Pontosan annyi hozzáférést adj az ügynöknek, amennyire az adott feladathoz szüksége van, egy cseppel se többet.
Mit tehetsz a gyakorlatban akkor is, ha nem vagy programozó?
Ne futtasd az ügynököt „mindent engedélyez” módban éles gépen
Az a mód, amelyben az ügynök nem kér megerősítést (gyakran bypassnak vagy yolónak nevezik), csak sandboxhoz vagy tesztprojekthez való, nem olyan géphez, amely éles kulcsokat és hozzáféréseket tartalmaz.
Tiltsd meg az ügynöknek a titkok olvasását
A Claude Code-ban ezt olyan szabállyal teheted meg, amely megtagadja a hozzáférést a kulcsokat tartalmazó fájlokhoz. Így még akkor sem nyithatja meg az eszköz az
.envfájlt, ha az ügynök megpróbálja.Tartsd külön az éles kulcsokat
Az éles adatbázis és a fizetési szolgáltatás kulcsai ne legyenek ugyanabban a mappában, ahol az ügynök kódot ír. Válaszd szét a környezeteket: kísérletezéshez tesztkulcsokat használj.
Használd az eszköz sandboxát
A modern AI-eszközök képesek elszigetelten (sandboxban) parancsokat futtatni, ahol nem férnek hozzá a rendszer többi részéhez. A Claude Code-ban ez körülbelül 84 százalékkal csökkenti az engedélykérések számát — így kényelmesebb is.
A Claude Code-ban a titkok olvasását megtagadó szabály nagyjából így néz ki — tedd be az engedélybeállítások közé:
{
"permissions": {
"deny": [
"Read(.env)",
"Read(**/.env)",
"Bash(git push *)"
]
}
}
Megjegyzés
Fontos kitétel: az olvasást megtagadó szabályok az ügynök beépített eszközeire és az egyszerű fájlparancsokra vonatkoznak. Ha viszont az ügynök saját szkriptet futtat, amely megnyit egy fájlt, a szabály nem állítja meg. Ezért a szilárd korlátot rendszerszintű sandboxnak kell biztosítania, nem csupán a tiltások listájának. Először a környezet, aztán a viselkedés.
Hová ne tedd soha az API-kulcsokat és jelszavakat?
Lényeg
Kizárólag egy .gitignore fájlban felsorolt .env fájlba, és soha ne a kódba vagy nyilvános repozitóriumba. Egy bot kevesebb mint egy perc alatt megtalálja a nyilvános repozitóriumba került kulcsot, és elkezdi költeni a pénzedet. 2025-ben 28.65 millió titok szivárgott ki nyilvános GitHub-repozitóriumokba. Ha egy kulcs már kiszivárgott, nem elég törölni — vissza kell vonnod, és újat kell kiadnod.
A legolcsóbb és leggyakoribb hiba, ha a kulcsokat a kódba teszik. A fizetési szolgáltatás API-kulcsa, egy adatbázisjelszó, egy bot tokenje — ezek mind titkok. Külön .env fájlban a helyük, és ezt a fájlt fel kell venni a .gitignore-ba, hogy ne kerüljön a kóddal együtt a gitbe.
A probléma mértéke 2025-ben: 28.65 millió új, kódba beégetett titok nyilvános repozitóriumokban, ami éves szinten 34 százalékos növekedés. A kifejezetten AI-szolgáltatásokhoz tartozó kulcsok kiszivárgása 81 százalékkal emelkedett. A vibe coding tovább szítja a problémát, mert az ügynök ellenőrzés nélkül commitol.
Ellenőrizd most kézzel a következőket:
Nyisd meg a projekt .gitignore fájlját
Győződj meg róla, hogy szerepel benne egy
.envsor. Ha nem szerepel, add hozzá az első commit előtt.Nyisd meg a GitHub-repozitóriumodat
Ellenőrizd, hogy az
.envfájl nincs-e ott. Gyors ellenőrzésként keress rá a repozitóriumban az.envszóra vagy a kulcsod egy részére.Ha kiszivárgott egy kulcs, vond vissza, és adj ki újat
A commit törlése nem elég: a kulcsot addigra már megszerezhették. Nyisd meg az adott szolgáltatást (fizetési szolgáltató, felhőszolgáltatás, AI-szolgáltató), vond vissza a régi kulcsot, és adj ki újat. Ezt kulcsrotációnak nevezik.
A kulcsoknak csak a minimálisan szükséges jogosultságot add meg
Ha egy kulcs csak olvasáshoz kell, állítsd csak olvashatóra. Így még akkor is kevesebbet lehet ellopni, ha kiszivárog.
Miért láthatja mindenki az adatbázisodat RLS nélkül?
Lényeg
Az RLS (Row Level Security) olyan automatikus szűrő, amelyet az adatbázis minden kéréshez hozzáad, hogy a felhasználók csak a saját soraikat lássák. Nélküle bárki, aki rendelkezik az alkalmazás nyilvános kulcsával, elolvashatja és módosíthatja az összes adatot. A fő csapda: amikor az AI SQL-en keresztül hoz létre táblát, az RLS alapértelmezés szerint ki van kapcsolva. Pontosan így szivárogtak ki az adatok 170 Lovable-alkalmazásból.
Ha Supabase-en vagy hasonló adatbázison készítesz alkalmazást, ez a legfontosabb rész. Az RLS a Row Level Security rövidítése. Egyszerűen fogalmazva olyan szabály, amely meghatározza, hogy egy adott felhasználó a tábla mely sorait láthatja. Nélküle az „orders” tábla mindenki számára visszaadja az összes ügyfél rendeléseit.
A Supabase dokumentációja világosan fogalmaz:
Az RLS nélküli táblák nyilvánosan elérhetők az API-n keresztül.
Ez a vibe codingot használók fő csapdája. Amikor a Supabase irányítópultján kattintgatva hozol létre táblát, a védelem automatikusan bekapcsol. Amikor viszont az AI hozza létre a táblát — és szinte mindig közvetlenül ír SQL-parancsokat —, az RLS alapértelmezés szerint kikapcsolva marad. Ez azt jelenti, hogy egy ügynök által létrehozott tábla szinte biztosan nyitva áll az egész internet előtt. Pontosan így szivárgott ki az adat a 170 Lovable-alkalmazásból.
Teendők:
Kérdezd meg közvetlenül az ügynököt
Írd ezt: „mutasd meg az összes táblát, amelynél ki van kapcsolva az RLS”. Az AI készít egy listát — ez lesz a munkasorod.
Kapcsold be az RLS-t minden olyan táblán, amely felhasználói adatot tartalmaz
Legalább egy hozzáférési szabályt is adj hozzá — például: „a felhasználó csak a saját sorait láthatja”.
Ellenőrizd az irányítópultot
A Supabase irányítópultján minden táblánál az „RLS enabled” feliratnak kell megjelennie. Ha szürke vagy piros, az azt jelenti, hogy a tábla nyitva van.
Teszteld élesben
Jelentkezz be normál felhasználóként, és próbáld meg lekérni valaki más adatait. Ha a hozzáférést megtagadja, a szabály működik.
Miért nem védenek meg a felületen végzett jogosultság-ellenőrzések?
Lényeg
Mert a támadó nem a felületen kattintgat a gombokra — közvetlenül a szerverednek küld kéréseket. Ha elrejtesz egy „törlés” gombot, vagy csak a képernyő szintjén mutatod mások adatait az „arra jogosult” felhasználóknak, ez egy pillanat alatt megkerülhető. Ellenőrizd a szerveren (a backenden), hogy a felhasználó jogosult-e végrehajtani a műveletet, ne csak a böngészőben.
Gyakori tévedés: „Megoldottam, hogy a normál felhasználók ne lássák az admin gombot.” A probléma az, hogy a gomb csak egy kép a böngészőben. A kérést közvetlenül a szervernek is el lehet küldeni a gomb használata nélkül. Ha a szerver nem ellenőrzi újra a jogosultságokat, végrehajtja valaki más parancsát.
Egy klasszikus példa az IDOR. Képzeld el, hogy megnyitod a rendelésedet egy id=123 című oldalon. Módosítsd id=124-re, és máris láthatod valaki más rendelését, mert a szerver nem ellenőrizte, hogy valóban a tiéd-e. Ez az egyik leggyakoribb rés a vibe codinggal készült alkalmazásokban, és a gyenge jogosultság-ellenőrzés állt a Tea-adatszivárgás mögött is.
A szabály egyszerű: minden „jogosult ez a felhasználó erre?” ellenőrzést ismételj meg a szerveren. A felület a kényelmet szolgálja; a védelem helye a backend. Az ügynöknek adható kész utasítás: „adj szerveroldali jogosultság-ellenőrzést minden olyan végponthoz, amely felhasználói adatot olvas vagy módosít; ne hagyatkozz a felületen elrejtett elemre.”
Hogyan ellenőrizheted a kódot rések után, ha nem vagy programozó?
Lényeg
Három olyan eszközzel, amely biztonsági mérnökként olvassa a kódot. Az első a közvetlenül a Claude Code-ban használható /security-review parancs. A második az Anthropic hivatalos security-guidance pluginja, amely minden szerkesztésnél ellenőrzi a kódot. A harmadik a GitHubon található, 754 kész biztonsági skillből álló gyűjtemény. Fontos: egyik sem garantál 100 százalékos biztonságot; ezek védelmi rétegek, nem helyettesítik a józan észt.
A jó hír: ma már megkérheted ugyanazt az AI-t a biztonság ellenőrzésére — egész jól megtalálja a gyakori réseket. Íme három, különböző feladatokra való eszköz.
| Eszköz | Mit csinál | Mikor futtasd |
|---|---|---|
/security-review | Egyszeri ellenőrzés egy branchen, egyetlen paranccsal | Közzététel előtt, kézzel |
| security-guidance plugin | Minden szerkesztést, minden kör végén és commitoláskor ellenőriz | Folyamatosan, a háttérben |
| GitHub skills-gyűjtemény | 754 ellenőrzés az OWASP, MITRE és NIST szabványai alapján | Ha mélyreható ellenőrzésre van szükséged |
1. A /security-review parancs a Claude Code-ban. Egyszeri ellenőrzést végez az aktuális branchen SQL injection, XSS, jogosultsági rések, adatszivárgás és függőségi problémák után. Lépésről lépésre elmagyaráztam a működését és azt, hogyan csatolj automatikus ellenőrzést minden módosításhoz egy külön útmutatóban: biztonsági áttekintés a Claude Code-ban. A lényeg itt az, hogy ez az első védelmi vonal, amely egyetlen paranccsal elindítható.
2. A hivatalos security-guidance plugin. Telepítsd a hivatalos plugin piactérről a /plugin install security-guidance@claude-plugins-official paranccsal (a Claude Code 2.1.144-es vagy újabb verziója szükséges). Három ponton ellenőrzi a kódot: minden szerkesztéskor, minden kör végén és commitoláskor. Felismeri a jogosultsági megkerüléseket, az IDOR-t, az injekciókat és a gyenge kriptográfiát. Az Anthropic azonban őszintén beszél a korlátairól:
A plugint a mélységi védelem egyik rétegének tekintsd, ne teljes körű biztonsági megoldásnak.
npx skills add <author>/<repo>
Ezután egyszerűen mondd az ügynöknek: „ellenőrizd a projektemet sebezhetőségek szempontjából”. A gyűjteménnyel kapcsolatban azonban van egy fontos kitétel, ezért lent külön részt szentelek neki.
A tágabb képhez hozzátartozik, hogy a nagy szereplők is komolyan kezdték venni az AI-kód biztonságát. A Project Glasswing részeként, amelyet 2026. június 2-án 150 szervezetre bővítettek, a partnerek rövid idő alatt több mint 10,000 kritikus sebezhetőséget találtak az Anthropic modelljeivel. A tét egyértelmű:
Becslésünk szerint a partnerek többségénél egy nagyszabású támadás több mint 100 millió embert érinthetne.
Megbízhatsz a GitHubról származó skillekben és bővítményekben?
Lényeg
Alapértelmezés szerint nem — telepítés előtt ellenőrizd őket. Minden skill, plugin vagy bővítmény valaki más kódja, amelyet az ügynök a te gépeden, a te jogosultságaiddal futtat. Az a gyűjtemény, amelynek nevében szerepel az „Anthropic”, valójában közösségi készítésű, és nincs kapcsolata az Anthropickal. Egy rosszindulatú bővítmény percek alatt ellophatja a kulcsaidat, az eltávolítása pedig nem mindig takarítja el a nyomait.
Itt válnak különösen bonyolulttá a dolgok, mert a veszély egy biztonságra szolgáló eszközből ered. Amikor lefuttatod az npx skills add ... parancsot vagy telepítesz egy bővítményt, valaki más kódját töltöd le, amelyet aztán az ügynök a te jogosultságaiddal futtat. Ha a szerzőt feltörték vagy a csomag eleve rosszindulatú volt, bajban vagy.
Vegyük az előző részben említett skills-gyűjteményt. A neve tartalmazza az „Anthropic” szót, amitől alábbhagy az óvatosságod. A saját leírása azonban világosan kimondja:
Ez egy független közösségi projekt. Nem áll kapcsolatban az Anthropic PBC-vel.
Más szóval a név félrevezető. Maga a gyűjtemény jelenleg kiforrott és tiszta, de az elv változatlan: saját felelősségedre telepíted. A fenyegetés pedig nem elméleti. 2026 májusában egy rosszindulatú szerkesztőbővítmény mindössze 18 percet töltött a piactéren — ezalatt sikerült ellopnia a telepítőitől a jelszókezelők jelszavait, GitHub-tokenjeit, felhőhozzáféréseit, sőt a Claude Code konfigurációit is. Egy másik kellemetlen részlet: az ilyen kártevők gyakran túlélik a csomag szokásos eltávolítását, és a következő munkamenetben újra elindulnak.
Kialakítottam egy egyszerű szokást, és neked is ezt ajánlom: mielőtt bármilyen skillt telepítesz a GitHubról, ellenőrizd magad. A szerzőket feltörhetik, a fiókokat eltéríthetik, a repozitóriumba pedig kártevő kerülhet. Az ellenőrzés a védelmed.
A telepítés előtti gyakorlati minimum: nézd meg a szerzőt és a csillagok számát, olvasd el a skill leírását, ne telepíts eszközt „mert egy bejegyzésben ajánlották”, az ismeretlen eszközt pedig először külön tesztkörnyezetben próbáld ki, ne olyan gépen, amelyen éles kulcsok vannak.
Mi ment meg egy incidens után: biztonsági mentések és visszaállítás
Lényeg
Friss biztonsági mentés és git. Az adatbázisról gyakran kell mentést készíteni — legalább félóránként; ha csak háromnaponta készül másolat, minden elveszik, ami a két mentés között összegyűlt. A git segítségével visszaállíthatod a kódot egy működő állapotba, ha az ügynök elront valamit. Az AI előbb-utóbb töröl valami fontosat — csak az a kérdés, lesz-e visszaállítási pontod.
A biztonság nemcsak arról szól, hogy „tartsuk kint a kívülállókat”, hanem arról is, hogy „térjünk vissza a normális működéshez, ha valami elromlik”. Mert valami el fog romlani. Az elmesélt gyakorlati esetben egy AI-ügynök rutinfeladat végzése közben törölt egy éles adatbázist egy produkciós projektben. Volt biztonsági mentés, de háromnapos — így három napnyi adat egyszerűen eltűnt.
Ebből két szabály következik.
Készíts gyakran biztonsági mentést. Ha az alkalmazásod olyan adatokat tartalmaz, amelyeket nem szívesen veszítenél el, a háromnaponta készülő másolat csak a védelem látszata. Állíts be automatikus mentést legalább 30 percenként. A legtöbb adatbázisnál, a Supabase-t is beleértve, ez néhány kattintással bekapcsolható.
A git biztosítás az ügynökkel szemben. A git tárolja a kódod előzményeit: bármelyik működő állapotot visszaállíthatod. Ha egy ügynök átír valamit, ami korábban működött, kézi javítás helyett állj vissza az utolsó működő verzióra. Ha az AI törölte vagy elrontotta a projektet, és nem tudod, hogyan állítsd helyre, olvasd el a külön beszámolót: mit tegyél, ha az AI törölte az adatbázist. Ha előre szeretnéd megvédeni a projektet a meghibásodástól, olvasd el az útmutatót arról, hogyan védd meg a Claude Code-ot a meghibásodásoktól.
Biztonsági ellenőrzőlista közzététel előtt
Lényeg
Mielőtt nyilvánossá teszed az alkalmazást, menj végig 10 ponton: titkok az .env-ben és az .gitignore-ban, bekapcsolt RLS, szerveroldali jogosultság-ellenőrzés, webhook-aláírások, minimális jogosultságok a kulcsok és az ügynök számára, friss biztonsági mentések, kódellenőrzés egy eszközzel, valamint óvatosság mások skilljeivel. Ez alapvető publikálás előtti ellenőrzőlista, mért lefedettségi százalék vagy garantált idő nélkül. Az alkalmazás valódi hozzáférési helyzeteit igazold; a kipipált mező önmagában nem bizonyít védelmet.
Közvetlenül a közzététel előtt haladj végig ezen a listán, sorrendben.
A titkok az
.envfájlban vannak, az.envpedig szerepel az.gitignore-ban. Nincsenek kulcsok a kódban. Nincs.envfájl a nyilvános repozitóriumban.A kulcsok csak a minimálisan szükséges jogosultságokkal rendelkeznek. Minden kulcs csak azt teheti, amire szükség van. Az éles kulcsok külön vannak választva az ügynök környezetétől.
Az RLS be van kapcsolva minden olyan táblán, amely felhasználói adatot tartalmaz, és a hozzáférési szabályok is érvényben vannak.
Minden adatműveletnél szerveroldali jogosultság-ellenőrzés működik. Nem elég elrejteni egy gombot a felületen. Kézzel tesztelted az
idmódosítását a címben.Webhook-aláírás ellenőrzése. Minden külső értesítést kezelő kód (fizetések, űrlapok) ellenőrzi az aláírást.
Sebességkorlátozás védi a bejövő kéréseket és a költséges műveleteket, hogy a jelszavakat ne lehessen brute force módszerrel kitalálni, és ne szaladhasson el a számlád.
Az ügynök nem „mindent engedélyez” módban fut olyan gépen, amelyen éles kulcsok vannak. Az
.envolvasása tiltva van.Gyakran készülnek biztonsági mentések, és tesztelted is őket — valóban próbáltál már visszaállítani, nem csak elhitted, hogy a másolatok „valahol megvannak”.
A kódot ellenőrizted a
/security-reviewparanccsal vagy a security-guidance pluginnal. A talált problémákat kijavítottad.Telepítés előtt ellenőrizted mások skilljeit és bővítményeit. Semmit sem telepítettél „vakon”.
Tipp
Ne próbálj egyszerre mindent erődszerűen lezárni — ez bénító hatású. A kockázat mértékét igazítsd a projektedhez: egy egyszerű, űrlapos webhely és egy fizetéseket, valamint egészségügyi adatokat kezelő alkalmazás nem igényel ugyanolyan szigorú védelmet. Az első öt pont azonban mindenki számára elérhető projekt alapja.
Mivel kezdd ma?
Lényeg
Kezdj három olyan lépéssel, amelyek a leggyakoribb és legköltségesebb réseket zárják be: ellenőrizd, hogy az .env nem került-e nyilvános repozitóriumba, kérdezd meg az ügynöktől, mely tábláknál van kikapcsolva az RLS, és állíts be napinál gyakoribb biztonsági mentést. Ezek az ellenőrzések hasznos kiindulópontok, de az idő és lefedettség az alkalmazástól függ. Kövessék őket valódi jogosultsági és visszaállítási tesztek.
Ne próbáld meg egyetlen este alatt végrehajtani az útmutató összes lépését — végül semmit sem fogsz tenni. Végezd el ma a három legfontosabb lépést:
- Ellenőrizd a titkaidat. Nyisd meg a
.gitignorefájlt, győződj meg róla, hogy szerepel benne az.env, és ellenőrizd, hogy nincsenek kulcsok a nyilvános repozitóriumban. Ha kiszivárgott valamelyik, vond vissza, és adj ki újat. - Kérdezz rá az RLS-re. Mondd az ügynöknek: „mutasd meg azokat a táblákat, amelyeknél ki van kapcsolva az RLS” — és kapcsold be mindenhol, ahol emberek adatait tárolod.
- Állíts be gyakori biztonsági mentést. Így, ha valami elromlik, perceket veszítesz napok helyett.
Ahogy a projekted növekszik, és pénzt, illetve mások adatait kezeli, kövesd a fenti ellenőrzőlistát.
Még egy utolsó gondolat. A vibe coding biztonsága a tulajdonos felelőssége. Nem kell biztonsági szakértővé válnod. Az AI egy este alatt megépítette a termékedet — nagyszerű, de te vagy érte a felelős. Az útmutatóban szereplő alapszint mutatja meg, hogyan fest ez a felelősség a gyakorlatban.
Források
Ha további munkát végeznél modellekkel, látogass el az Ailoothoz.
További részletek
Kérdések és válaszok: Vibe coding biztonság: hogyan védd meg az AI-val készített alkalmazást
Az ellenőrzőlista teljesítése bizonyítja az alkalmazás biztonságát?
Nem. Gyakori kezdőellenőrzéseket fed le, garantált eltávolított sérülékenységi százalék nélkül. Normál felhasználóként teszteld a tényleges adathozzáférést, a webhook-validációt és egy mentés visszaállítását.
Miért nem elég elrejteni az adminisztrációs gombot?
A támadó közvetlenül is elküldheti a mögöttes kérést. A szervernek minden műveletnél ellenőriznie kell a hívó azonosságát és jogosultságát, a felhasználói adatokhoz pedig megfelelő adatbázis-hozzáférési szabályzat kell.