Grunderna i säkerhet för AI-kod
Undvik riskerna som AI ofta missar.
Grunderna i säkerhet för AI-kod är en gratis lektion i Vibe Coding på CoddyKit. Detta är lektion 2 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Vibe Coding, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Vibe Coding innehåller totalt 4 lektioner.
AI skriver snabbt — ibland osäkert
AI är fantastiskt på att snabbt få något att fungera. Men ”fungerande” och ”säkert” är inte samma sak. AI lämnar ofta riktiga appar öppna för attacker eftersom det optimerar för det förväntade scenariot, inte för illvilliga användare.
Den goda nyheten är att några få vanor fångar upp de flesta problemen, och du kan be AI att tillämpa dem. Den här lektionen går igenom de säkerhetsrisker som vibe-kodare oftast stöter på.
Lägg aldrig hemligheter i koden
Det vanligaste misstaget: att klistra in en API-nyckel eller ett lösenord direkt i koden. Om koden hamnar på GitHub är nyckeln offentlig för alltid — botar söker efter läckta nycklar inom några minuter.
Hemligheter hör hemma i miljövariabler, aldrig i källkoden. Se skillnaden nedan.
// DANGER: key is hardcoded and will leak
const apiKey = 'sk-live-abc123realkey';
// SAFE: key comes from the environment, not the code
const apiKey = process.env.API_KEY;
if (!apiKey) {
throw new Error('API_KEY is missing — set it in your .env file');
}Håll hemligheter borta från Git
Lagra hemligheter i en .env-fil och se till att Git ignorerar filen så att den aldrig checkas in. En rad i .gitignore räcker.
Be ditt AI-verktyg konfigurera detta korrekt från början.
Set up environment variables for this project:
- create a .env file with API_KEY=
- add .env to .gitignore so it's never committed
- create a .env.example with empty placeholders to commit instead
- show me where the code reads process.env.API_KEYLita aldrig på användarindata
Säkerhetens gyllene regel: allt en användare kan skriva in kan användaren ljuga om. Angripare skickar medvetet trasig, överdimensionerad eller skadlig indata. Din kod måste validera den.
Här är ett enkelt skydd som kontrollerar indata innan den används.
function createUser(input) {
if (typeof input.email !== 'string' || !input.email.includes('@')) {
return { error: 'Invalid email' };
}
if (input.age < 0 || input.age > 150) {
return { error: 'Invalid age' };
}
return { ok: true };
}
console.log(createUser({ email: 'bad', age: 30 }));
console.log(createUser({ email: 'a@b.com', age: 30 }));SQL-injektion: ett klassiskt AI-misstag
Om AI bygger din databasfråga genom att klistra in användarindata i en sträng kan en angripare injicera egna kommandon och stjäla eller radera data. Det kallas SQL-injektion.
Lösningen är parametriserade frågor — databasen behandlar indata som data, aldrig som kommandon. Be alltid AI att använda dem.
// DANGER: user input glued straight into the query
db.query("SELECT * FROM users WHERE email = '" + email + "'");
// SAFE: parameterized — the ? is filled in safely
db.query('SELECT * FROM users WHERE email = ?', [email]);Be AI granska säkerheten
Du kan göra AI till en säkerhetsgranskare. Klistra in koden och be den specifikt leta efter sårbarheter — den är mycket bättre på att hitta dem när du frågar direkt.
Review this code for security problems. Specifically check for:
- hardcoded secrets or API keys
- unvalidated user input
- SQL injection
- missing authentication checks
List each issue, why it's risky, and the fix. Here is the code: <paste>Skydda det som ska vara privat
AI bygger ofta en endpoint som returnerar data utan att kontrollera vem som frågar. Det innebär att vem som helst kan läsa en annan användares data genom att bara ändra ett ID i URL:en.
Varje känslig åtgärd behöver en auktoriseringskontroll: har den här användaren rätt att göra detta?
// DANGER: anyone can read any order by guessing the id
app.get('/orders/:id', (req, res) => {
res.json(getOrder(req.params.id));
});
// SAFE: only the owner can see their order
app.get('/orders/:id', (req, res) => {
const order = getOrder(req.params.id);
if (order.userId !== req.user.id) return res.status(403).end();
res.json(order);
});Håll beroenden uppdaterade
Din app använder många paket som skrivits av andra. Vissa har kända säkerhetshål. Föråldrade beroenden är ett av de vanligaste sätten som appar hackas på.
Ett snabbt kommando kontrollerar kända sårbarheter, och AI kan hjälpa dig att förstå resultaten.
# Check installed packages for known vulnerabilities
npm audit
# Then ask AI:
# "npm audit reports 3 high-severity issues in <package>.
# Explain the risk in plain English and tell me the safest way to fix it."Läck inte fel till användarna
När något går fel visar AI-genererad kod ibland det råa felet — inklusive sökvägar, databasinformation eller stacktraces. Det är en gåva till angripare.
Logga detaljer privat på servern, men visa användarna ett generiskt och vänligt meddelande.
try {
doRiskyThing();
} catch (err) {
console.error('Internal error:', err); // private log
res.status(500).json({ error: 'Something went wrong. Please try again.' });
// never send err.stack or err.message to the user
}En säkerhetschecklista du kan återanvända
Gå igenom detta innan du driftsätter något. Klistra in det i din AI och be den verifiera varje punkt mot din kod.
- Inga hemligheter i koden eller Git-historiken.
- All användarindata är validerad.
- Databasfrågor är parametriserade.
- Känsliga routes kontrollerar vem som är inloggad och vad personen har rätt att göra.
- Beroenden är granskade och uppdaterade.
- Fel loggas privat och användarna får generiska meddelanden.
Säkerhet är en dialog, inte ett engångssteg
Du kommer inte att upptäcka allt, och det är okej. Förhållningssättet som skyddar dig är att anta att AI-kod är osäker tills den har granskats, ställa säkerhetsfrågor varje gång du lägger till en funktion och köra checklistan igen före varje driftsättning.
Se AI som en noggrann partner som du aktivt ifrågasätter — inte som ett orakel du litar blint på.
Snabbtest
Din AI-assistent genererar en inloggningsfunktion och hårdkodar databaslösenordet direkt i källfilen. Vad bör du göra?
Sammanfattning: säkerhet som vana
AI levererar snabbt men hoppar över säkerheten, så det är du som måste stå för den. Du har lärt dig att: hålla hemligheter borta från koden, validera all indata, använda parametriserade frågor, lägga till auktoriseringskontroller, granska beroenden och dölja råa fel.
Framför allt kan du be AI att granska just dessa problem och köra en checklista före varje driftsättning. Nästa ämne är att hålla koden ren och underhållbar.
Lär dig JavaScript med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 25
- Lektioner
- 100
Vanliga frågor
Är lektionen ”Grunderna i säkerhet för AI-kod” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Vibe Coding, inklusive ”Grunderna i säkerhet för AI-kod”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Vibe Coding innehåller totalt 4 lektioner.
Vad lär jag mig i ”Grunderna i säkerhet för AI-kod”?
Undvik riskerna som AI ofta missar. Ni övar på Vibe Coding med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Vibe Coding?
Du behöver inga förkunskaper. Utbildningen i Vibe Coding på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Grunderna i säkerhet för AI-kod”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Vibe Coding-lektionen?
Ja. Varje Vibe Coding-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Lägga till tester med AI
- Grunderna i säkerhet för AI-kod
- Hålla koden underhållbar
- Prestanda och kostnad