
OWASP Top 10:2025 voor webshops, vertaald naar de praktijk
De OWASP Top 10 is de bekendste lijst van webapplicatie-risico's. Maar wat betekent 'Software or Data Integrity Failures' voor jouw checkout? Wij vertalen alle tien categorieën naar Magento, Shopify en Laravel, en toetsen je shop erop.
- Alle tien risico's, concreet uitgelegd
- Toetsing van je eigen shop
- Fixes door hetzelfde team
Een checklist is geen beveiliging, maar wel een goede kaart
OWASP is een open community die al jaren in kaart brengt waar webapplicaties het vaakst misgaan. De Top 10 is geen standaard waar je voor slaagt. Het is een bewustwordingslijst: dit zijn de categorieën waar de meeste echte problemen in vallen.
De editie van 2025 brengt twee nieuwe categorieën. Software Supply Chain Failures (A03) erkent dat je code van anderen een ingang is. Mishandling of Exceptional Conditions (A10) gaat over wat er gebeurt als iets onverwachts misgaat. SSRF is opgegaan in Broken Access Control, die op één blijft staan.
Voor een webshop is de lijst bruikbaar als je hem concreet maakt. Wat betekent access control in een klantaccount? Waar zit je supply chain? Hieronder per categorie wat het betekent, hoe het eruitziet en wat wij eraan doen.
De tien risico's van 2025, per categorie
Per categorie: wat het in een Magento-, Shopify- of Laravel-shop betekent, een herkenbaar voorbeeld en hoe wij het afdekken.
| Categorie | Wat het betekent in je webshop | Voorbeeld | Hoe wij het afdekken |
|---|---|---|---|
| A01 Broken Access Control | Gebruikers zien of wijzigen data die niet van hen is. Inclusief SSRF: de server laten verbinden met interne adressen. | Order- of factuur-ID in de URL ophogen en de bestelling van een andere klant zien. | Autorisatie per endpoint controleren, IDOR-tests op orders, facturen en accounts, policies in Laravel. |
| A02 Security Misconfiguration | Instellingen die te veel openzetten. | Developer mode op productie, open Redis of OpenSearch, directory listing, debug-output. | Configuratiereview van applicatie, webserver en services; hardening-checklist per platform. |
| A03 Software Supply Chain Failures | Kwetsbare of kwaadaardige code via extensies, Composer, npm of je CI. | Een verlaten Magento-extensie met een bekend lek, of een gecompromitteerd npm-pakket in de build. | composer audit in de deploy, extensie-inventaris, lockfiles, minimale CI-secrets. |
| A04 Cryptographic Failures | Gevoelige data zonder goede versleuteling of met zwakke sleutels. | Encryptiesleutel uitgelekt via een lek en nooit geroteerd, of API-keys in plain text in de database. | Secrets buiten git, sleutelrotatie na incidenten, TLS-configuratie, controle op opslag van gevoelige data. |
| A05 Injection | Invoer die als code of query wordt uitgevoerd: SQL, template, command, XSS. | TrojanOrders (CVE-2022-24086): template injection via de checkout. Of ontbrekende escaping in een phtml. | Code review op raw SQL en escaping, $escaper in Magento, Eloquent en bindings in Laravel. |
| A06 Insecure Design | Fouten in de logica, niet in de code. | Een kortingscode die onbeperkt stapelt, of een retourflow zonder controle op eigenaarschap. | Threat modeling bij nieuwe features, misbruikscenario's meenemen in het ontwerp. |
| A07 Authentication Failures | Zwakke login, sessies of accountherstel. | Credential stuffing op klantaccounts, admin zonder 2FA, SessionReaper (CVE-2025-54236) met account-overname. | 2FA op admin, rate limiting en bot-bescherming op login, sessieconfiguratie, snelle patches. |
| A08 Software or Data Integrity Failures | Code of data wordt vertrouwd zonder integriteitscheck. | Een extern script op de checkout dat stil wordt aangepast tot skimmer. Of onveilige deserialisatie. | CSP en SRI op betaalpagina's, scriptinventaris, monitoring op wijzigingen, signed deploys. |
| A09 Security Logging & Alerting Failures | Je merkt een aanval niet, of pas veel te laat. | Een nieuwe admin-gebruiker die weken onopgemerkt blijft. | Logging van logins, admin-acties en configwijzigingen, met alerts op afwijkingen. |
| A10 Mishandling of Exceptional Conditions | Onverwachte fouten leiden tot een onveilige toestand. | Een betaalcallback die bij een time-out de order toch als betaald markeert, of stacktraces met paden en queries voor bezoekers. | Fail-closed logica, foutafhandeling reviewen, geen debug-info op productie, tests op randgevallen. |
Per platform een andere verdeling
Dezelfde tien risico's, maar wie wat regelt verschilt sterk.
Magento en Adobe Commerce
Jij bent verantwoordelijk voor bijna alles: core-patches, extensies, server, admin en checkout. A03 (supply chain) en A02 (misconfiguratie) zijn hier de grote. De grootste Magento-lekken vielen onder injection en authentication.
Lees verder →Shopify
Shopify regelt platform, hosting en de standaard checkout. Jouw deel: apps en hun rechten, staff-accounts, custom apps en headless-frontends. A01 en A03 zitten bij Shopify vooral in apps.
Lees verder →Laravel en Filament
Laravel heeft goede defaults: CSRF-tokens, Eloquent bindings, Blade-escaping. Maar autorisatie, uploads en API-ontwerp doe je zelf. A01 is in maatwerk vrijwel altijd de grootste vinder.
Lees verder →Waar we in webshops het vaakst op stuiten
Bij audits zien we vaak dezelfde drie. Broken access control in maatwerk: een endpoint of controller die controleert of je bent ingelogd, maar niet of de data van jou is. Dat heet IDOR en het is verrassend vaak raak bij orders, facturen en klantgegevens.
Daarna supply chain. Extensies die jaren geen update kregen, of een build die zonder lockfile draait. Het lek zit dan niet in jouw code, maar je bent er wel verantwoordelijk voor.
Als derde misconfiguratie: debug-instellingen op productie, services die publiek bereikbaar zijn, te ruime bestandsrechten. Saai, maar het is precies wat geautomatiseerde aanvallers als eerste proberen.
OWASP ASVS: van bewustwording naar eisen
De Top 10 vertelt wat er vaak misgaat. De ASVS vertelt wat je moet controleren.
De Application Security Verification Standard (ASVS) is ook van OWASP. Het is een lijst met concrete, toetsbare eisen, ingedeeld in drie niveaus. Niveau 1 is de basis die elke applicatie zou moeten halen. Niveau 2 past bij de meeste applicaties met gevoelige data, zoals webshops met klantaccounts. Niveau 3 is voor de meest kritieke systemen.
Voor maatwerk is ASVS nuttig als afsprakenkader. Je legt vooraf vast welke eisen gelden, en een review of pentest toetst daarop. Dat voorkomt discussie achteraf over wat 'veilig' betekent.
Eerlijk: voor een standaard Magento- of Shopify-shop zonder veel maatwerk is volledige ASVS-toetsing vaak overkill. Daar levert een gerichte audit meer op. Bouw je een B2B-portal, een eigen API of een Laravel-applicatie met klantdata, dan is ASVS niveau 2 een goed uitgangspunt.
Snelle zelfcheck langs de Top 10
Geen volledige toets, wel een goede eerste indicatie.
Toegang en authenticatie (A01, A07)
- Kun je als klant alleen je eigen orders en facturen opvragen, ook via de API?
- Heeft elke admin-gebruiker 2FA en een eigen account?
- Is login beschermd tegen credential stuffing met rate limiting of bot-bescherming?
Code en dependencies (A03, A05, A08)
- Draait composer audit of een vergelijkbare check in je deploy?
- Weet je welke extensies of packages al lang niet zijn bijgewerkt?
- Zijn alle scripts op je betaalpagina bekend en beschermd met CSP en SRI?
Configuratie en foutafhandeling (A02, A04, A10)
- Staat productie in production mode zonder debug-output?
- Staan secrets buiten git en zijn ze na een incident geroteerd?
- Faalt je betaalflow veilig als een externe dienst niet reageert?
Ontwerp en detectie (A06, A09)
- Denk je bij nieuwe features na over hoe ze misbruikt kunnen worden?
- Krijg je een melding bij een nieuwe admin-gebruiker of een gewijzigd betaalscript?
Zo werken we
Een OWASP-review is bij ons geen scan met een PDF. We lezen code, testen en lossen op.
- 1
Scope bepalen
Welke onderdelen tellen: checkout, klantaccount, API, admin, maatwerkmodules of een Laravel-portal? We kiezen wat het meeste risico draagt.
- 2
Inventaris
Platformversie, extensies, packages, endpoints en integraties. Zo weten we waar de tien categorieën in jouw shop zitten.
- 3
Review en test
Code review op injection, access control en foutafhandeling. Handmatige tests op IDOR, authenticatie en betaalflow. Tools waar ze helpen, mensen waar het telt.
- 4
Rapport per categorie
Bevindingen ingedeeld naar de OWASP Top 10:2025, met ernst, bewijs en een concrete fix.
- 5
Oplossen en hertesten
Wij kunnen de fixes ook zelf doorvoeren. Daarna testen we opnieuw of het echt dicht is.
Wat je krijgt
- Een overzicht van je shop langs alle tien OWASP-categorieën van 2025
- Bevindingen met ernst, bewijs en reproductiestappen
- Concrete fixes per bevinding, afgestemd op Magento, Shopify of Laravel
- Een advies of en op welk ASVS-niveau verdere toetsing zinvol is
- Optioneel: de fixes doorgevoerd en hertest door hetzelfde team
- Een korte toelichting in gewone taal voor directie of eigenaar
Waarom Coding.nl
We bouwen zelf op deze platformen
Magento, Hyvä, Shopify en Laravel zijn ons dagelijkse werk. We weten waar de risico's per platform echt zitten.
15+ jaar e-commerce
We zien welke categorieën in webshops het vaakst misgaan, en welke vooral op papier bestaan.
Hyvä Silver Partner, Hypernode Silver Partner
Diepe kennis van de Magento-stack, van frontend tot hosting.
Vast senior team, direct contact
Wie de review doet, legt het uit en lost het op. Geen overdracht tussen afdelingen.

Verder lezen
- ›Broken access control in webshops: IDOR op orders en accounts
- ›Security misconfiguration: 12 instellingen die webshops openzetten
- ›Software supply chain: Composer, npm en CI als ingang naar je webshop
- ›Credential stuffing op klantaccounts: zo stop je accountovername
- ›Security logging voor webshops: wat log je en wanneer gaat er een alarm af?
- ›OWASP ASVS: security-eisen vastleggen voor je maatwerk webshop
- ›OWASP Top 10 in Laravel: wat het framework regelt en wat jij doet
- ›XSS in Magento voorkomen: de $escaper goed gebruiken in templates
Veelgestelde vragen
Benieuwd hoe je shop scoort op de OWASP Top 10?
Vertel ons op welk platform je draait en wat je hebt laten bouwen. We stellen een gerichte review voor, met de onderdelen die bij jou het meeste risico dragen.