Beveiligingslekken opsporen
Controleer op veelvoorkomende kwetsbaarheden.
Beveiligingslekken opsporen is een gratis Vibe-coding-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Vibe-coding. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Vibe-coding bevat in totaal 4 lessen.
AI-standaarden zijn onveilig
Modellen leren van openbare code, en de meeste openbare code geeft duidelijkheid voorrang boven veiligheid. Het statistische gemiddelde van die verzameling is een app met zwakke authenticatie en invoerverwerking die invoer te veel vertrouwt.
Daarom biedt de basis van gegenereerde software beveiliging op demonstratieniveau. Het werkt, het wordt opgeleverd en het lekt.
De hiaten vinden vereist een doelbewuste aanvallende controle; de demonstratie van het gewenste pad zal ze nooit zichtbaar maken.
Injectie: de klassieker
De meest voorkomende fout die AI introduceert, is injectie: SQL die met tekenreekssamenvoeging wordt opgebouwd, shellopdrachten die uit gebruikersinvoer worden samengesteld en sjablonen waarin niet-vertrouwde gegevens worden ingevoegd.
De gegenereerde query ziet er normaal uit totdat een aanvaller een apostrof verstuurt. Daarna wordt de query hun query.
Zoek overal waar gebruikersinvoer aan een opdracht, query of markup-tekenreeks wordt vastgeplakt.
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.Defecte autorisatie
Authenticatie vraagt wie je bent; autorisatie vraagt wat je mag doen. Modellen voegen routinematig een login toe en vergeten daarna het eigenaarschap van elke resource te controleren.
Het resultaat is de klassieke IDOR: wijzig de id in de URL en lees de gegevens van iemand anders. Het eindpunt heeft je geauthenticeerd, maar nooit gecontroleerd of het record van jou was.
Controleer bij elke gegevenstoegang het eigenaarschap of de rol, en niet alleen of iemand is ingelogd.
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.Geheimen in de broncode
Vraag om een werkende integratie en het model plakt graag een API-sleutel rechtstreeks in de code om de demonstratie te laten werken. Die sleutel blijft vervolgens voor altijd in je git-geschiedenis staan.
Geheimen horen in omgevingsvariabelen of een kluis, nooit in vastgelegde code, clientbundels of logboeken.
Doorzoek de hele codeboom naar iets dat eruitziet als een sleutel, token of wachtwoord dat hardcoded is.
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.De client vertrouwen
Gegenereerde frontends dwingen regels vaak alleen in de browser af: de prijs wordt aan de clientzijde berekend, de rol wordt in JavaScript gecontroleerd en de validatie gebeurt in het formulier.
Een aanvaller omzeilt dit allemaal door je API rechtstreeks aan te roepen. Alles wat de client berekent, moet de server opnieuw berekenen en verifiëren.
Behandel elk verzoek alsof het van een vijandig script komt, want dat kan inderdaad zo zijn.
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.Zwakke invoervalidatie
Modellen valideren het veld dat je noemt en negeren de rest. Lengtelimieten, typecontroles, allowlists en formaatregels worden overgeslagen tenzij je erom vraagt.
Onbegrensde invoer leidt tot denial-of-service, te grote uploads en ongeldige gegevens die systemen verderop beschadigen.
Valideer bij de vertrouwensgrens met expliciete allowlists, niet met blocklists die aanvallers kunnen omzeilen.
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.Overdadige foutinformatie
Handig voor het opsporen van fouten, gevaarlijk in productie: stacktraces, SQL-fouten en interne paden die aan de aanroeper worden teruggegeven, geven aanvallers een kaart van je systeem.
Modellen kiezen standaard voor uitvoerige fouten omdat die de demonstratie makkelijker te repareren maken. In productie zijn algemene meldingen voor gebruikers nodig en volledige details alleen in privélogboeken.
Scheid wat de gebruiker ziet van wat je vastlegt.
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.Ontbrekende snelheidslimieten
Login-eindpunten, wachtwoordresets en dure query's zonder snelheidsbeperking staan open voor brute-forceaanvallen en misbruik. Het model voegt zelden uit zichzelf throttling toe.
Een onbeperkt login-eindpunt is een doelwit voor credential stuffing. Een onbeperkte zoekopdracht kan worden gebruikt voor een denial-of-serviceaanval.
Identificeer gevoelige en kostbare eindpunten en beperk hoe vaak ze kunnen worden aangeroepen.
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.Afhankelijkheidsrisico
AI kan een verouderd, verlaten of zelfs verzonnen pakket toevoegen. Namen van afhankelijkheden die expres bijna hetzelfde zijn als echte namen vormen een reëel aanvalsvector in de softwaretoeleveringsketen.
Elke import die het model voorstelt, is een vertrouwensbeslissing. Controleer of het pakket bestaat, wordt onderhouden en geen bekende kritieke kwetsbaarheden bevat.
Voer een auditprogramma uit en lees wat het markeert, in plaats van blind automatisch te upgraden.
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.Denk als een aanvaller
De krachtigste prompt verandert het model van bouwer in tegenstander. Vraag het om de code aan te vallen die het zojuist heeft geschreven.
Een dreigingsmodellering brengt systematisch in kaart hoe elke functie kan worden misbruikt: wat een aanvaller wil, waar die controle over heeft en welke aanname het eerst breekt.
Een vijandige controle vindt de hiaten waar een constructieve controle recht langs loopt.
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.Gelaagde beveiliging
Geen enkele beveiligingsmaatregel is voldoende. Valideer invoer, gebruik geparametriseerde query's, controleer autorisatie en beperk de snelheid. Als één laag faalt, houdt de volgende nog stand.
Modellen voegen vaak één oplossing toe en verklaren de zaak daarmee voor afgedaan. Echte beveiligingsversteviging stapelt maatregelen, zodat één fout niet catastrofaal is.
Beveiliging is een eigenschap van het hele systeem, dat ook als geheel wordt beoordeeld.
Korte controle
Test je instinct voor beveiligingscontroles.
Samenvatting
AI kiest standaard voor onveilige code: injectie, gebrekkige autorisatie, geheimen in de broncode, vertrouwen in de client, zwakke validatie, uitlekkende fouten, geen snelheidsbeperkingen en riskante afhankelijkheden.
Zoek ze met een vijandige controle, modelleer de dreigingen van elke functie en stapel beveiligingsmaatregelen voor gelaagde beveiliging. Vervolgens verstevig je de gecontroleerde app voor productie.
Leer JavaScript met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 25
- Lessen
- 100
Veelgestelde vragen
Is de les “Beveiligingslekken opsporen” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Vibe-coding, waaronder “Beveiligingslekken opsporen”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Vibe-coding bevat in totaal 4 lessen.
Wat leer ik in “Beveiligingslekken opsporen”?
Controleer op veelvoorkomende kwetsbaarheden. Je oefent met Vibe-coding door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Vibe-coding te beginnen?
Ervaring vooraf is niet nodig. Vibe-coding op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Beveiligingslekken opsporen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Vibe-coding?
Ja. Elke les over Vibe-coding bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Waarom AI-code controle nodig heeft
- Tests genereren met een prompt
- Beveiligingslekken opsporen
- Klaarmaken voor productie