Stel je voor:
Je bouwt een simpele app. Bijvoorbeeld eentje waarmee je klasgenoten kunnen inloggen om hun cijfers te bekijken. Alles lijkt te werken. Totdat je merkt… dat je óók de cijfers, namen en e-mailadressen van anderen kunt zien.
Oei. Niet helemaal de bedoeling, toch?
Als je software maakt, wil je dat het goed werkt. Maar het moet ook veilig zijn, de privacy van gebruikers respecteren, en eerlijk zijn tegenover iedereen die het gebruikt. In deze blog lees je wat veilige code is, waarom het belangrijk is, en hoe jij daar als beginnende developer nu al slimme keuzes in kunt maken. Daarbij houden we steeds drie principes in het oog: security, privacy en ethiek.

1. Waarom veilige code belangrijk is
Misschien denk je: “Mijn app is nog klein, wat kan er nou misgaan?”
Maar juist nu kun je al leren hoe je dingen slim en veilig opzet. Als je geen rekening houdt met veiligheid, kunnen er dit soort dingen gebeuren:
❌ Onveilige code – dit moet je NIET doen
Stel: je maakt een console-applicatie waarin leerlingen hun cijfers kunnen opvragen. Maar door een fout in de code krijgt iedereen ineens álle cijfers te zien.
static void CijfersOpvragen()
{
Console.Write("Voer jouw naam in: ");
string naam = Console.ReadLine();
// ❌ Privacyfout: alle leerlingen en cijfers worden getoond
foreach (var leerling in leerlingenCijfers)
{
Console.WriteLine($"Leerling: {leerling.Key}");
Console.WriteLine("Cijfers: " + string.Join(", ", leerling.Value));
}
}
Uitleg: Deze code controleert niet wie er om informatie vraagt, en toont dus alles. Dat is een klassiek voorbeeld van een privacyprobleem.
- Iedereen kan gegevens van anderen zien (privacyprobleem)
- Iemand voert vreemde tekens in en veroorzaakt een fout (securityprobleem)
- Je bewaart wachtwoorden open en bloot in je code (ethisch probleem), bijvoorbeeld in een bestand dat je per ongeluk online zet
Daarom is het goed om jezelf bij elke stap af te vragen: “Wat als iemand dit expres verkeerd gebruikt?”
Dat is al ethisch denken: je kijkt niet alleen of iets werkt, maar denkt ook na over wat de gevolgen kunnen zijn voor anderen.
✅ Veilige code – toon alleen wat nodig is
static void CijfersOpvragen()
{
Console.Write("Voer jouw naam in: ");
string naam = Console.ReadLine();
if (leerlingenCijfers.ContainsKey(naam))
{
Console.WriteLine($"Cijfers voor {naam}:");
Console.WriteLine(string.Join(", ", leerlingenCijfers[naam]));
}
else
{
Console.WriteLine("Geen cijfers gevonden voor deze naam.");
}
}
Uitleg: De gebruiker ziet alleen zijn of haar eigen cijfers. Dat is privacy vriendelijk en voorkomt datalekken.
2. Invoervelden controleren – kleine moeite, groot verschil
Een van de eenvoudigste én meest effectieve manieren om je applicatie veiliger te maken, is het controleren van gebruikersinvoer. Waarom? Omdat ongecontroleerde invoer een open deur is naar fouten, datalekken en zelfs cyberaanvallen.
Wat bedoelen we met ‘invoer controleren’?
Stel: je maakt een formulier waarin mensen hun naam, leeftijd en e-mailadres moeten invullen. Dan wil je zeker weten dat ze geen onzin invullen, zoals:
Een naam? Geen cijfers of vreemde tekens
Een leeftijd? Alleen echte getallen
Een e-mailadres? Lijkt het op een geldig adres?


Waarom is invoercontrole belangrijk?
Ongecontroleerde invoervelden kunnen misbruikt worden om ongewenste data je systeem binnen te krijgen. Zonder invoercontrole vergroot je het risico op fouten of beveiligingsproblemen.
Aspect | Wat levert het op? |
Security | Je voorkomt dat schadelijke data je systeem binnendringt (bijv. via SQL-injecties). |
Privacy | Je zorgt ervoor dat persoonlijke data correct en veilig verwerkt wordt. |
Ethiek | Je zorgt dat je systeem niet makkelijk misbruikt kan worden, wel zo eerlijk. |
Hoe controleer je invoer op een slimme manier?
Je kunt invoer handmatig controleren met simpele regels, maar gelukkig zijn er ook handige hulpmiddelen die dit proces makkelijker én veiliger maken.
Regex (afkorting van “regular expression”) is een manier om tekst te controleren op een bepaald patroon. Bijvoorbeeld: bevat een e-mailadres een @-teken en een domeinnaam?
Regex helpt bij het herkennen van dit soort patronen.
Validator: Een validator is een stukje code of een bibliotheek die automatisch controleert of de invoer geldig is volgens de regels die jij instelt. Denk aan verplichte velden, het juiste datatype of maximale lengte.
Voorbeelden van validators:
3. Foutmeldingen – wat je beter niet kunt laten zien
Stel: iemand vult iets verkeerd in en krijgt dit te zien:
“Fout in regel 42 van login.php: Databaseverbinding mislukt met gebruikersnaam root en wachtwoord ‘admin123’.”
Dat is gevoelige informatie die niet bedoeld is voor de gebruiker – en zeker niet voor iemand met slechte bedoelingen.
Laat nooit technische informatie zien aan gebruikers |
Toon geen foutregels, padnamen of wachtwoorden |
Toon een simpele melding: “Er is iets misgegaan. Probeer het opnieuw.” |
Log de technische fout op de achtergrond, alleen zichtbaar voor jou of je team |
Zo houd je je systeem veilig (security) en respecteer je de gebruiker (ethiek).
4. Wachtwoorden veilig opslaan
Sommige (slechte) websites bewaren wachtwoorden zo:
Gebruiker: Ylmz123
Wachtwoord: welkom2025
Als iemand dat bestand te pakken krijgt, kan diegene meteen inloggen. Niet veilig dus!
Wat moet je doen?
Hashen: Hashing betekent dat je een wachtwoord omzet in een reeks willekeurige tekens (hash) die je niet zomaar kunt terugrekenen. Zo sla je wachtwoorden veilig op. Gebruik bijvoorbeeld bcrypt of Argon2. |
Salting: Bij salting voeg je extra willekeurige tekens toe aan het wachtwoord vóór je het gaat hashen. Daardoor zien twee identieke wachtwoorden er toch verschillend uit. Dit maakt het moeilijker om hashes te raden of terug te rekenen. |
2FA (Two-Factor Authentication): Dit betekent dat gebruikers niet alleen met een wachtwoord inloggen, maar ook met een extra controle (bijv. een code via een app). Dit maakt toegang tot je systeem veel veiliger. |
Voorbeelden van veilige 2FA-apps zijn Google Authenticator of Authy.
Security: Je beschermt accounts tegen misbruik
Privacy: Je zorgt dat gebruikersgegevens veilig blijven opgeslagen
Ethiek: Je laat zien dat je bewust omgaat met gevoelige data
5. Eerlijk programmeren – jouw rol als developer
Stel: je werkt in een team en je ziet een beveiligingsprobleem. Iemand zegt:
“Laat maar zitten, dat lossen we later wel op.”
Wat doe jij dan?
Jij hebt een verantwoordelijkheid. Je schrijft niet alleen code, je beschermt ook de mensen die jouw software gebruiken.
Stel jezelf deze vragen:
- Moet ik dit melden?
- Wat gebeurt er als ik het negeer?
- Wil ik een developer zijn die bewust en eerlijk werkt?
Door het toch te melden, of door serieus te zijn tijdens een code review, maak jij al verschil. Voor je team, je gebruikers – en voor jezelf.
Kleine acties, groot effect. Dat is eerlijk programmeren (ethiek).
6. Samen sterk: waarom code reviews goud waard zijn
Ook als jij veilig programmeert, zie je niet altijd alles. Daarom zijn code reviews zo belangrijk: je laat iemand anders meekijken vóórdat je code live gaat.
- Frisse blik: Een ander ziet dingen die jij mist
- Samen leren: Je leert van elkaars aanpak
- Veiliger resultaat: De software wordt sterker en betrouwbaarder
Tip: Zie een code review niet als kritiek, maar als een kans om beter te worden. Dat maakt je niet alleen een betere developer, maar ook een bewustere.
7. Aan de slag: reflecteer op je eigen code
Je hebt nu gelezen wat veilige code is, waarom het belangrijk is, en hoe je er als developer mee aan de slag kunt. Maar de echte stap begint bij jezelf.
🔍 Mini-opdracht – Check jouw code
Kijk naar een stuk code dat je eerder hebt geschreven. Misschien een oefenproject, een schoolopdracht of een stukje login-functionaliteit.
Beantwoord voor jezelf deze vragen:
- Heb ik ergens invoer gecontroleerd? Zo ja, hoe heb ik dat gedaan?
- Wat zou er gebeuren als iemand expres verkeerde gegevens invult?
- Kan ik de veiligheid, privacy of ethiek van mijn code verbeteren?
- Welke hulpmiddelen zoals validators of regex zou ik hiervoor kunnen gebruiken?
💡 Door op deze manier naar je eigen werk te kijken, ontdek je waar je al goed bezig bent – en waar je nog kunt groeien. Veilig programmeren begint bij kleine keuzes. Die kun jij vandaag al maken.
Mijn visie :
“Als ontwikkelaar zie ik veilige code niet langer als een luxe, maar als een morele plicht. We bouwen applicaties die door miljoenen mensen worden gebruikt en vertrouwen krijgen we alleen door die verantwoordelijkheid serieus te nemen. In mijn ogen moet veilige codering net zo vanzelfsprekend worden als het testen van functionaliteit. Want wat heb je aan een werkende app als deze een open deur is voor misbruik?
Ik denk dat we als developers te lang hebben gedacht in termen van ‘features’ in plaats van ‘gevolgen’. Daarom pleit ik ervoor dat security-onderwijs niet optioneel is, maar een vast onderdeel van elke programmeeropleiding. We moeten onze kennis niet alleen toepassen, maar ook uitdragen – binnen teams, richting opdrachtgevers én gebruikers.”
Hoe kijk jij hiernaar als (beginnende) developer? Ben jij al bewust bezig met de ethische impact van jouw code?
Alles is wel overzichtelijk alleen ik zou het stukje met “Hashen, salting en 2FA” wat duidelijker maken met wat meer wit regels.
Makkelijk te lezen. Leer hier wel wat van. Bij het filmpje hoor je niet iemand anders gegevens te geven.
Ik vind dat het een goeie opmaak is veel verteld over privacy etiek en security dus genoeg informatie en een goed voorbeeld!
Ik vond het fijn dat er geen onnodige informatie werd gegeven om de blog op te vullen
Makkelijk te lezen en goed uitgelegd
Er is een link in de header en apart. Het zou fijner zijn om ze ergens samen te hebben of een menutje te hebben.
er staat twee keer dit in maar met andere teksten er achter ik raak daardoor verwart
Security: Je voorkomt dat er foute of gevaarlijke data binnenkomt
Privacy: Je beschermt persoonlijke informatie
Ethiek: Je zorgt dat je systeem niet makkelijk misbruikt kan worden
maar voor de rest is het een duidelijke en goed gemaakte website
website ziet er echt mooi uit, en is heel makkelijk om te lezen. het is ook best wel leerzam. wat verbeterd kan worden is de regelafstand en misschien paar links naar een youtube video, die kunnen helpen om je verder in het onderwerp te verdiepen.
De blog leest fijn: stelt vragen en geeft kort en duidelijk uitleg met gebruik van termen die weer uitgelegd worden dus je blijft geïnteresseerd omdat er steeds nieuwe dingen getoond worden. Ook worden er geen details geskipt ook al zijn ze logisch. Ik vindt het ook wel goed dat de blog begint met een verhaaltje en een programmatje en dat daar dan naar gaat kijken en de onderwerpen van de blog aan kaart.
Mooie website met goede uitleg snap nu meer over hoe dit werkt
Ik vind zelf dat de blog een mooie gestructureerde ontwerp heeft en alles is duidelijk.
ik vind dat er wel wat meer visuele uitleg bij mag, maar voor de rest vind ik hem wel prima
ik zie dat de design van sommige dingen niet heel perfect is.
want. je ziet de imperfecties in de design iets staat er niet op de juiste plek of iets hoort er niet te zijn of de design is niet recht gedaan.
Blog ziet er simpel, strak en netjes uit. Ik zou terug komen als er een nieuwe/andere blog uit zou komen.
kon meer uitgelegd worden en minder witregels. Voor de rest is het wel netjes.
Deze blog legt op een duidelijke manier uit wat veilige code is en waarom dat zo belangrijk is, vooral voor mensen die net beginnen met programmeren. De voorbeelden zijn herkenbaar en goed gekozen, en de uitleg over dingen als invoer controleren, foutmeldingen en wachtwoorden opslaan is makkelijk te volgen.
Wat kan nog beter:
Er staan een paar kleine taalfoutjes in, zoals spelfouten of Engelse woorden waar een Nederlands woord beter past.
Probeer wat consequenter te zijn in het gebruik van hoofdletters en termen als “security”, “privacy” en “ethiek”.
Verder is dit een leerzame en nuttige blog die laat zien dat goed programmeren ook betekent dat je eerlijk en zorgvuldig met gegevens omgaat.
Dank voor je reactie via Chat GPT 😉
De tekst ziet er overzichtbaar uit, Ik had alleen de Voorbeelden van validators een soort van button gegeven dat als je erop zou klikken dat je misschien naar een tekst doorgestuurd wordt voor meer uitleg. Verder goede blog!
Bij punt 6 wordt er gezegd dat het goed is om een andere developer of programmeur naar je code te laten kijken zodat je een frisse blik is. Ik vind het raar dat deze bij een blog over veilige code wordt inbegrepen, aangezien slordig gegevens opslaan in je code ervoor kan zorgen dat een andere developer informatie te zien krijg waar hij eigenlijk niet bij moet/hoort te komen.
Voor de rest ziet de blog er goed uit, de afbeeldingen en video versterken het verhaal op bepaalde momenten.