Skip to main content

Les 9: Secure Coding (OWASP)

ShopWave

ShopWave heeft op dit punt een solide beveiligingsfundament. Wachtwoorden worden gehasht met BCrypt. 2FA beschermt de loginflow. Orders worden digitaal ondertekend. De API draait op HTTPS. JWT bewaakt de endpoints.

Maar al die maatregelen beschermen de communicatie en de authenticatie. Ze beschermen niet tegen fouten in de code zelf.

Een aanvaller hoeft HTTPS niet te omzeilen als hij een invoerveld kan misbruiken om rechtstreeks de database te lezen. Hij hoeft geen JWT te stelen als een foutmelding de volledige serverstructuur blootgeeft. Beveiliging begint niet bij de netwerklaag. Het begint bij elke regel code die je schrijft.

De OWASP Top 10 is een lijst van de meest voorkomende en gevaarlijkste kwetsbaarheden in webapplicaties, samengesteld door een internationale gemeenschap van beveiligingsexperts. In deze les behandelen we de meest kritieke kwetsbaarheden voor ShopWave in detail.


OWASP Top 10 (2021)

NrNaamKernprobleemShopWave-voorbeeld
A01Broken Access ControlGebruikers voeren acties uit buiten hun rechtenKlant raadpleegt bestellingen van andere klant
A02Cryptographic FailuresGevoelige data onvoldoende versleuteld of gehashtWachtwoorden als plain text
A03InjectionOnbetrouwbare data uitgevoerd als codeSQL Injection in productzoekfunctie
A04Insecure DesignArchitectuur mist beveiliging van bij het beginGeen lockout na herhaalde mislukte logins
A05Security MisconfigurationStandaardinstellingen, debug-info in productieStack trace zichtbaar in foutmelding
A06Vulnerable ComponentsVerouderde bibliotheken met bekende kwetsbaarhedenNuGet-pakket met gekende CVE
A07Auth and Session FailuresZwakke authenticatie, onveilig sessiebeheerJWT zonder vervaldatum
A08Software and Data IntegrityOnbetrouwbare updates of deserialisatieNuGet-pakket vervangen door malafide versie
A09Logging and Monitoring FailuresAanvallen worden niet gedetecteerdGeen logging van mislukte loginpogingen
A10SSRFServer vraagt externe URL op gestuurd door gebruikerAPI haalt URL op die aanvaller meestuurt

In deze les diepen we A03 (Injection), A05 (Misconfiguration), input validatie en CORS verder uit.


Leerdoelen

Na deze les kan je:

  1. uitleggen wat SQL Injection is en hoe een aanvaller het uitvoert
  2. een kwetsbaar zoekendpoint omzetten naar een veilige implementatie met parameterized queries
  3. uitleggen wat XSS is en waarom output encoding de oplossing is
  4. de Developer Exception Page omgevingsafhankelijk configureren
  5. server-side input validatie toevoegen aan API-endpoints
  6. CORS correct configureren zodat enkel toegestane origins verzoeken mogen sturen
  7. rate limiting instellen op het login-endpoint om brute-force aanvallen te blokkeren
  8. kwetsbare NuGet-packages opsporen via dotnet list package --vulnerable

PaginaInhoud
TheorieSQL Injection, XSS, misconfiguratie, input validatie, CORS, rate limiting, demo stap voor stap
Oefeningen5 implementatieoefeningen op basis van ShopWave
OplossingenVolledige oplossingen met toelichting