Biztonsági audit fenyegetésmodellel
Végigveszi, ki és hogyan élhetne vissza az alkalmazásoddal, majd a kódot a tipikus hibákra nézi át: jogosultság, bemenet, titkok, függőségek. Súlyosság szerint rangsorol, és jelzi, amit a beillesztett részből nem lát.
Töltsd ki a saját adataiddal
A sárgával jelölt részeket cseréld a saját adataidra.
EllenőrzésCtrl + Enter: másolás
Példa: kitöltve, mintaválasszal
- Alkalmazás
- Számlamegosztó: vállalkozók feltöltik a számláikat, a könyvelőjük letöltheti
- Adatok
- Számlák PDF-ben, név, adószám, e-mail
- Felépítés
- Next.js, API-útvonalak, Postgres, fájlok felhőtárhelyen
- Hitelesítés
- E-mail és jelszó; két szerep: vállalkozó, könyvelő
- Kód
- // GET /api/invoices/[id] const session = await getSession(req); if (!session) return res.status(401).end(); const inv = await db.query(`SELECT * FROM invoices WHERE id = ${req.query.id}`); res.json(inv.rows[0]);
1. Fenyegetésmodell: a védendő érték a számlák és az adószámok. A legvalószínűbb visszaélő egy másik bejelentkezett ügyfél, aki mások számláit próbálja elérni.
4. Leletek
| Súlyosság | Hol | Gond | Következmény |
|---|---|---|---|
| Kritikus | 4. sor | A lekérdezésbe közvetlenül kerül a kérés paramétere | Az adatbázis tartalma kiolvasható vagy módosítható |
| Kritikus | 2-5. sor | Csak a bejelentkezést ellenőrzi, a tulajdonost nem | Bármely felhasználó lekérheti bárki számláját az azonosító átírásával |
| Közepes | 5. sor | A teljes sor megy vissza | Belső mezők is kikerülhetnek |
5. Javítás
const inv = await db.query(
'SELECT id, number, amount, file_key FROM invoices WHERE id = $1 AND (owner_id = $2 OR accountant_id = $2)',
[req.query.id, session.userId]
);
if (!inv.rows[0]) return res.status(404).end();
6. Nem látom: a fájlok letöltési linkjeit (nyilvánosak vagy lejárók?), a jelszó tárolását, a feltöltés ellenőrzését, a sebességkorlátot.
7. Ellenőrzés: jelentkezz be két tesztfiókkal, és az egyikkel kérd le a másik számlájának azonosítóját. 404-et kell kapnod.
Szemléltető minta, Claude segítségével készült: azt mutatja, milyen jellegű és felépítésű válaszra számíthatsz. A többi ajánlott eszközzel a prompt várhatóan ugyanígy használható, de nem mindegyikben próbáltuk ki. A te eredményed más lesz. Hogyan készülnek a példák?
Miért működik?
Az AI által írt kód jellemző hibája nem az egzotikus sebezhetőség, hanem a hiányzó tulajdonos-ellenőrzés: a bejelentkezést nézi, azt nem, hogy az adat kié. A fenyegetésmodell ezért a „másik ügyfél” szereplővel kezd.
A 6. pont legalább olyan fontos, mint a leletek: az audit csak arra érvényes, amit megmutattál, és ezt a modell ki is mondja.
Mire figyelj?
- Ez nem helyettesíti a szakember által végzett biztonsági tesztet, főleg ha fizetést vagy érzékeny adatot kezelsz.
- Kulcsot, jelszót, éles kapcsolati adatot soha ne illessz be. Ha már bekerült egy beszélgetésbe, cseréld le.
- Csak a saját rendszeredet vizsgáld. Más rendszerének engedély nélküli tesztelése jogsértő.
Folytasd ezekkel
Ugyanabban a beszélgetésben küldd el, a válasz után.
- Nézd át ugyanígy a fájlfeltöltő és a letöltő végpontot; beillesztem a kódot.
- Írj rövid biztonsági szabálylistát a kódoló AI szabályfájljába ezekből a leletekből.
Kapcsolódó promptok
Összes vibe coding promptBiztonsági átnézés élesítés előtt
Mielőtt idegenek is használják, amit AI-jal építettél: ellenőrzőlista a leggyakoribb hibákra, a kulcsoktól a jogosultságokon át a mentésig, súlyosság szerint rendezve.
Tesztterv a kritikus felhasználói utakra
Kockázat szerint rangsorolja, mit kell tesztelni az alkalmazásodban, majd megírja a legfontosabb teszteket. Kézzel elvégezhető ellenőrzőlistát is ad azoknak, akik nem írnak automata tesztet.
Hibakeresés módszeresen, feltevésekkel
Megállítja a találgatós javítgatást: a tünetekből rangsorolt feltevéseket állít fel, mindegyikhez egy ellenőrző lépést ad, és csak a bizonyított ok után javít. A javítás a lehető legkisebb marad.
Projektterv mérföldkövekkel és elfogadási feltételekkel
Az ötletedből olyan tervet ír, amelyet a kódoló AI lépésenként végre tud hajtani: hatókör, adatmodell, mérföldkövek, és mindegyiknél az, hogy miből látod, hogy kész. Külön listázza, ami szándékosan kimarad.