Je Magento 2 shop is gehackt. Geen paniek. Volg dit stappenplan en herstel je webshop veilig — inclusief AVG-meldplicht en malware verwijdering.
Magento 2 gehackt: dit doe je de eerste 24 uur
Je ontdekt dat je Magento shop gehackt is. Misschien zag een klant iets vreemds op de betaalpagina. Misschien staat je shop op een blacklist. Misschien stuurde Google Search Console een waarschuwing.
Haal diep adem. Dit is oplosbaar.
We herstellen bij coding.nl regelmatig gehackte Magento shops. Wat we keer op keer zien: de eerste reactie — alles meteen offline halen en de boel wissen — maakt de situatie vaak erger. Dit artikel geeft je een gestructureerd stappenplan voor de eerste 24 uur.
Stap 1: Maintenance mode aan — niet offline halen
Je eerste instinct is begrijpelijk: alles uitzetten. Maar als je de server volledig afsluit of bestanden begint te verwijderen, vernietig je het bewijsmateriaal dat je nodig hebt.
Voer dit uit via SSH:
php bin/magento maintenance:enable
- Wijzig alle adminpaneel-wachtwoorden
- Vernieuw je API-sleutels (Mollie, betaalgateway, ERP-koppeling)
- Blokkeer tijdelijk toegang tot
/adminvoor alle IP-adressen behalve die van jezelf
Stap 2: Aanvalsvector identificeren
Voordat je iets repareert, moet je weten hoe de aanvaller is binnengekomen.
Controleer de logbestanden
tail -200 /var/www/html/var/log/system.log
tail -200 /var/www/html/var/log/exception.log
tail -500 /var/log/nginx/access.log | grep -i "POST"
Controleer de database
-- Onbekende admingebruikers
SELECT user_id, username, email, created_at FROM admin_user ORDER BY created_at DESC;
-- Verdachte configuratie (externe scripts)
SELECT config_id, path, value, updated_at FROM core_config_data
WHERE value LIKE '%<script%' OR value LIKE '%eval(%' ORDER BY updated_at DESC;
-- Geïnjecteerde CMS-blokken
SELECT block_id, title, update_time FROM cms_block
WHERE content LIKE '%<script%' OR content LIKE '%base64%' ORDER BY update_time DESC;
Meest voorkomende aanvalsvectoren
| Aanvalsvector | Kenmerken |
|---|---|
| Admin brute force | Veel mislukte loginpogingen, onbekende admin-accounts |
| Ongepatche CVE | Specifieke URL-patronen in logs |
| Gecompromitteerde extensie | Verdachte bestanden in vendor/ of app/code/ |
| FTP/SSH credentials gelekt | Onbekende bestanden, geen spoor in Magento logs |
Stap 3: Malware scannen
Geautomatiseerde scantools
- Sansec eComscan — meest betrouwbare commerciele Magento malware scanner
- Magento Security Scan Tool — gratis via account.magento.com
- MageReport — snel overzicht via magereport.com
Handmatige controle op PHP-backdoors
grep -r "eval(base64_decode" /var/www/html --include="*.php" -l
grep -r "system(\$_" /var/www/html --include="*.php" -l
grep -r "exec(\$_" /var/www/html --include="*.php" -l
find /var/www/html -name "*.php" -mtime -30 | grep -v "var/cache"
Magecart/skimming herkennen
De meest gevreesde aanval: een JavaScript-skimmer die betaalgegevens steelt. De klant merkt niets, jij merkt niets — totdat iemand klaagt over creditcardfraude.
Zo werkt het:
- Aanvaller krijgt toegang tot je omgeving
- Ze injecteren JavaScript in je checkout (via core_config_data, CMS-blok of themabestand)
- Dat script luistert naar toetsaanslagen in het betaalformulier
- Kaartgegevens worden naar een externe server gestuurd
Stap 4: Schade inschatten
Beantwoord deze vragen:
- Welke data had de aanvaller toegang tot? Klantgegevens, betaalgegevens, wachtwoorden, bestelhistorie
- Hoe lang was de aanvaller actief? Check timestamps in logs en database
- Is er een skimmer actief geweest? Zo ja: ga ervan uit dat alle betaalgegevens in die periode zijn buitgemaakt
Stap 5: AVG/GDPR melding — binnen 72 uur
Bij een datalek met persoonsgegevens ben je in de meeste gevallen verplicht dit te melden bij de Autoriteit Persoonsgegevens — binnen 72 uur na ontdekking.
Meld via: autoriteitpersoonsgegevens.nl/nl/melden-datalek Bij gelekte betaalgegevens (hoog risico) ben je ook verplicht de betrokken klanten te informeren.De 72-uurstermijn begint op het moment dat je kennis neemt van het lek. Twijfel? Meld alvast voorlopig en vul later aan.
Stap 6: Herstel en opschonen
De volgorde is belangrijk
- Sluit het lek (patch de CVE, verwijder gecompromitteerde extensie, wijzig credentials)
- Verwijder alle malware en backdoors
- Herstel vanuit een schone backup van voor de aanval
- Controleer opnieuw na het herstel
Wachtwoorden en credentials resetten
- Alle Magento admin-accounts
- Database-wachtwoord + env.php bijwerken
- FTP/SFTP-wachtwoorden
- Hosting control panel
- API-sleutels voor alle koppelingen
- Verwijder onbekende admin-accounts
Stap 7: Herhaling voorkomen
- Verander de admin-URL — de standaard
/adminis het eerste wat aanvallers proberen - Schakel 2FA in voor alle admin-gebruikers
- Houd Magento up-to-date — de meeste hacks misbruiken bekende kwetsbaarheden
- Beperk admin-toegang op IP-niveau
- Installeer een WAF (Cloudflare, Sucuri)
| Maatregel | Prioriteit |
|---|---|
| Security patches direct installeren | Hoog |
| Admin 2FA verplicht | Hoog |
| Regelmatige security scan | Hoog |
| Minimale extensies, alleen betrouwbare bronnen | Hoog |
| Offsite backups (30 dagen) | Hoog |
| File integrity monitoring | Medium |
| Admin-URL wijzigen | Medium |
Wanneer bel je een specialist?
Bel een specialist als:- Je geen SSH-toegang hebt
- Je geen schone backup kunt vinden
- Je na het schoonmaken opnieuw gehackt wordt
- Er aanwijzingen zijn voor een skimmer
- Je de aanvalsvector niet kunt identificeren
Bij coding.nl helpen we webshop-eigenaren met spoed bij dit soort incidenten.
Veelgestelde vragen
Moet ik aangifte doen bij de politie?
Niet verplicht, maar aan te raden bij financiële schade voor klanten. Meld via 0900-8844 of het digitaal loket.
Moet ik mijn betaalprovider informeren?
Ja, absoluut. Neem direct contact op met je PSP (Mollie, Adyen, MultiSafepay). Zij kunnen transacties monitoren op fraude.
Hoe lang duurt het herstel gemiddeld?
Voor een specialist: 4 tot 8 uur. Zonder ervaring kan het dagen duren.
Hoe weet ik of mijn shop nu echt schoon is?
Voer meerdere scans uit met verschillende tools, controleer handmatig verdachte locaties, en herstel bij voorkeur vanuit een gevalideerde schone backup. Blijf daarna logs monitoren.
Wat kost een hack gemiddeld?
Van een paar honderd euro voor technisch herstel tot tienduizenden euro's inclusief reputatieschade, klantvergoedingen en gemiste omzet.

Geschreven door Ruthger Idema
15+ jaar ervaring in e-commerce development. Gespecialiseerd in Magento, Shopify en Laravel maatwerk.
Meer over ons team →