Hitta säkerhetsluckor
Granska efter vanliga sårbarheter.
Hitta säkerhetsluckor är en gratis lektion i Vibe Coding på CoddyKit. Detta är lektion 3 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:s standardval är osäkra
Modeller lär sig från offentlig kod, och den mesta offentliga koden prioriterar tydlighet framför säkerhet. Det statistiska genomsnittet av den kodmassan är en app med svag autentisering och alltför tillitsfull hantering av indata.
Därför har genererad programvara säkerhet på demonstrationsnivå som utgångspunkt. Den fungerar, levereras och läcker data.
Att hitta luckorna kräver en avsiktlig adversariell granskning; de kommer aldrig att avslöjas av demon som bara visar den normala vägen.
Injektion: den klassiska sårbarheten
Den vanligaste bristen som AI introducerar är injektion: SQL som byggs genom strängkonkatenering, skalkommandon som sätts samman från användarindata och mallar som interpolerar data som inte är betrodd.
Den genererade frågan ser normal ut tills en angripare skickar en apostrof. Då blir frågan angriparens fråga.
Leta efter alla ställen där användarindata klistras in i en kommando-, fråge- eller markupsträng.
Scan this codebase for injection risks: SQL or NoSQL queries built by string concatenation, shell commands assembled from input, and any HTML or template that interpolates untrusted data. For each, show the vulnerable line and rewrite it using parameterized queries or proper escaping.Bristande behörighetskontroll
Autentisering frågar vem du är; behörighetskontroll frågar vad du får göra. Modeller lägger rutinmässigt till inloggning och glömmer sedan att kontrollera ägarskap för varje resurs.
Resultatet blir den klassiska IDOR-sårbarheten: ändra id:t i URL:en och läs någon annans data. Endpunkten autentiserade dig, men verifierade aldrig att posten var din.
Kontrollera åtkomst till varje datapost med en ägar- eller rollkontroll, inte bara med en kontroll av att användaren är inloggad.
Review every endpoint that reads or writes a record by id. For each, confirm there is an authorization check that the current user actually owns or is permitted to access that specific record. List any endpoint that only checks authentication but not ownership.Hemligheter i källkoden
Be om en fungerande integration så klistrar modellen gärna in en API-nyckel direkt i koden för att få demon att fungera. Den nyckeln finns sedan för alltid i din git-historik.
Hemligheter hör hemma i miljövariabler eller ett valv, aldrig i incheckad kod, klientpaket eller loggar.
Sök igenom kodträdet efter allt som ser ut som en hårdkodad nyckel, token eller ett lösenord.
Search the entire repository, including history if possible, for hardcoded secrets: API keys, tokens, passwords, connection strings, and private keys. List each location and the secret type, and tell me which must be rotated because they were already committed.Lita inte på klienten
Genererade frontendlösningar verkställer ofta regler bara i webbläsaren: priset beräknas på klientsidan, rollen kontrolleras i JavaScript och valideringen görs i formuläret.
En angripare kringgår allt detta genom att anropa ditt API direkt. Allt som klienten beräknar måste servern beräkna om och verifiera på nytt.
Behandla varje begäran som om den kom från ett fientligt skript, eftersom den kan göra det.
Identify every business rule that is currently enforced only on the client: price or total calculations, role and permission checks, and input validation. For each, add equivalent server-side enforcement and assume the client cannot be trusted.Bristande indatavalidering
Modeller validerar fältet du nämnde och ignorerar resten. Längdbegränsningar, typkontroller, tillåtelselistor och formatregler utelämnas om du inte ber om dem.
Obegränsad indata inbjuder till överbelastningsattacker, överdimensionerade uppladdningar och felaktigt formaterad data som kan korrumpera nedströmsystem.
Validera vid förtroendegränsen med uttryckliga tillåtelselistor, inte blockeringslistor som angripare kan ta sig runt.
Add strict server-side validation to this endpoint using an allowlist approach: enforce types, length and size limits, allowed character sets, and required fields. Reject anything that does not match rather than trying to sanitize bad input into shape.Läckage genom alltför utförliga fel
Hjälpsamt vid felsökning, farligt i produktion: stackspår, SQL-fel och interna sökvägar som returneras till anroparen ger angripare en karta över ditt system.
Modeller använder som standard utförliga fel eftersom de gör demon enklare att rätta. Produktion behöver generiska meddelanden till användare och fullständiga detaljer endast i privata loggar.
Separera det användaren ser från det du registrerar.
Find every place where internal error details leak to the client: raw stack traces, database error messages, file paths, or framework debug pages. Replace them with a generic client message and ensure the full detail is logged server-side only.Saknade hastighetsbegränsningar
Inloggningsendpoints, lösenordsåterställningar och dyra frågor utan hastighetsbegränsning är öppna för brute force-attacker och missbruk. Modellen lägger sällan till begränsningar om du inte ber om det.
En obegränsad inloggningsendpoint är ett mål för credential stuffing. En obegränsad sökning kan användas för överbelastningsattacker.
Identifiera känsliga och kostsamma endpoints och begränsa hur ofta de får anropas.
List the endpoints that need rate limiting: authentication, password reset, account creation, and any expensive query or external call. Recommend a per-user and per-IP limit for each and show how to enforce it with our middleware.Beroenderisk
AI kan ta in ett föråldrat, övergivet eller till och med hallucinerat paket. Namn på beroenden som bygger på typosquatting är en verklig angreppsväg i leveranskedjan.
Varje import som modellen föreslår är ett förtroendebeslut. Kontrollera att paketet finns, underhålls och inte har några kända kritiska sårbarheter.
Kör ett granskningsverktyg och läs vad det flaggar i stället för att blint uppgradera automatiskt.
Review the dependencies this code introduced. Confirm each package actually exists and is actively maintained, flag any with known critical vulnerabilities, and watch for typosquatted names that resemble popular packages. Recommend safer alternatives where needed.Tänk som en angripare
Den kraftfullaste prompten omformulerar modellens roll från utvecklare till motståndare. Be den att angripa koden den nyss skrev.
En hotmodellering kartlägger hur varje funktion kan missbrukas: vad en angripare vill uppnå, vad angriparen kontrollerar och vilket antagande som bryts först.
En adversariell granskning hittar luckor som en konstruktiv granskning lätt går förbi.
Act as a penetration tester targeting this feature. Build a threat model: what would an attacker want, what inputs do they control, and what is the most damaging realistic attack? Walk through the strongest exploit step by step and tell me the smallest fix that closes it.Djupförsvar
Ingen enskild kontroll räcker. Validera indata, använd parametriserade frågor, kontrollera behörigheter och begränsa anropsfrekvensen. Om ett lager fallerar finns nästa lager fortfarande kvar.
Modeller lägger ofta till en enda korrigering och förklarar sedan problemet löst. Riktig härdning staplar kontroller så att ett enda misstag inte blir katastrofalt.
Säkerhet är en egenskap hos hela systemet och måste granskas som en helhet.
Snabbtest
Testa din känsla för säkerhetsgranskning.
Sammanfattning
AI genererar som standard osäker kod: injektioner, bristande behörighetskontroll, hemligheter i källkoden, förtroende för klienten, svag validering, informationsläckande fel, inga hastighetsbegränsningar och riskfyllda beroenden.
Leta efter dem genom en adversariell granskning, hotmodellera varje funktion och stapla kontroller för djupförsvar. Därefter ska du härda den granskade appen för produktion.
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 ”Hitta säkerhetsluckor” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Vibe Coding, inklusive ”Hitta säkerhetsluckor”, 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 ”Hitta säkerhetsluckor”?
Granska efter vanliga sårbarheter. 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 3 av 4.
Hur lång tid tar lektionen ”Hitta säkerhetsluckor”?
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
- Varför AI-genererad kod behöver granskas
- Generera tester med en prompt
- Hitta säkerhetsluckor
- Gör lösningen produktionsklar