Het gemak van een QR-code is dat je niets hoeft te typen. Dat is meteen het zwakke punt: je ziet pas waar hij naartoe leidt als je telefoon hem heeft gelezen, en dan is één tik genoeg om de pagina te openen. In dit korte stuk lees je waar je in die paar seconden op let.
Een QR-code verbergt waar hij heen gaat
Voor jou is een QR-code een patroon van zwarte en witte blokjes. Voor je telefoon is het tekst, meestal een webadres. Iedereen met een printer kan er een maken die overal naartoe wijst, en aan het patroon zie je niet of het echt is aangebracht door het bedrijf waarvan het logo ernaast staat. Phishing via QR-codes heeft zelfs een eigen naam gekregen: quishing.
Het gaat niet alleen om stickers op straat. Microsoft telde in januari 2026 7,6 miljoen phishingaanvallen met QR-codes in e-mail en in maart 18,7 miljoen, vooral verstopt in pdf-bijlagen (70% in maart) of Word-bijlagen (DOC/DOCX, 24%) (Microsoft, 30 april 2026). Het kwartaal erna daalde het aantal per maand weer, tot 8,3 miljoen in juni (Microsoft, 23 juli 2026). De aantallen schommelen; de truc blijft hetzelfde.
Bekijk het adres voordat je het opent
Veel camera-apps en QR-scanners tonen het webadres voordat ze het openen. Stop daar en lees het. Heeft je scanner-app een instelling die links na het scannen automatisch opent, zet die dan uit. Dat raadt ook INCIBE aan, het nationale cyberveiligheidsinstituut van Spanje (INCIBE, 4 augustus 2026). Een pagina die meteen opengaat, geeft je geen moment om te controleren.
Stel jezelf dan één vraag: is dit het adres dat ik verwachtte? INCIBE adviseert te controleren of het getoonde webadres overeenkomt met het officiële domein van de zaak of de dienst die je verwacht. Een parkeerbetaling hoort bij de site van de gemeente of de parkeeraanbieder, een menukaart bij de eigen site van het restaurant of een dienst die het duidelijk gebruikt.
Het ontcijferde adres is de eerste halte, niet per se de laatste: een normaal ogend adres kan je ergens anders naartoe sturen, en aan het adres zie je niet waar die keten eindigt of wat er op de pagina staat. Gaat het om iets gevoeligs, open dan liever de officiële app of een bladwijzer die je vertrouwt, en open een verdachte link niet alleen om uit te zoeken wat erachter zit.
Lees het domein, niet alleen het begin
Phishingadressen zijn gemaakt om een vluchtige blik te doorstaan. Vaak beginnen ze met de naam die je verwacht en zit de echte bestemming verderop. Een paar bekende patronen, met verzonnen adressen voor een gemeente Havendam (.example is gereserveerd voor voorbeelden):
- De juiste naam op de verkeerde plek: in
havendam.example.betaal-portaal.example/parkerenis het domeinbetaal-portaal.example. De bekende naam aan het begin is versiering. - Extra woorden:
havendam-parkeren-betalen.exampleklinkt officieel, maar is een ander domein danhavendam.example, geregistreerd door wie het maar wilde hebben. - Letters die op elkaar lijken:
havendarn.examplemetrnin plaats vanm, of een nul in plaats van een o. - Verkorte links: een kort domein met een willekeurige code erachter zegt niets over de bestemming. Waar het heen gaat, zie je pas als je het opent.
Zo vind je het domein: sla https:// over en lees tot de eerste /, ? of #, of tot het einde van het adres als er geen volgt. Dat stuk bevat de host; een poortnummer aan het einde, zoals :8443, en alles vóór een @ horen er niet bij. Lees de host van rechts naar links. In parkeren.havendam.example/betalen is het domein dat telt havendam.example, en het parkeren. ervoor is gekozen door de eigenaar van dat domein. Alles na de host kan van alles zijn, ook een vertrouwde naam: in https://betaal-portaal.example?next=havendam.example/betalen is de host betaal-portaal.example, omdat het ? eerder komt. Staat er een @ in dat stuk, of weet je niet zeker welk deel het domein is? Vertrouw de code dan niet en ga zelf naar de officiële website of app.
Meer over het lezen van een hostnaam, ook met letters uit andere alfabetten, lees je in Ander domein achter een link: alarmsignaal of onschuldig?
Stickers, boetes en betaalverzoeken
De meest directe truc heeft geen e-mail nodig: een sticker met een valse code over de echte heen. In maart 2025 waarschuwde de gemeente Alicante dat er stickers met valse QR-codes op de ORA-parkeerautomaten waren gevonden, die naar frauduleuze pagina's leidden om bankgegevens te stelen. Het advies: controleer of de code geen sticker is die over de originele is geplakt (El Español, 10 maart 2025).
In New York maakten de officier van justitie van Manhattan en de inspectiedienst van de stad (DOI) op 30 september 2026 bekend dat er 64 valse QR-codes van parkeerautomaten in Manhattan waren verwijderd. Volgens het persbericht stond op de code die een slachtoffer scande "Web Pay. Scan to Pay", zat die over de officiële PARKNYC-sticker geplakt en leidde die naar een website met het officiële PARKNYC-logo die om kaartgegevens vroeg. Er is een man aangeklaagd; de aanklacht bevat beschuldigingen, geen bewezen feiten. De officier van justitie herinnerde New Yorkers eraan dat "the city does not ask you to scan a QR code when parking": de stad vraagt je niet een QR-code te scannen om te parkeren (Manhattan DA en NYC DOI, 30 september 2026). Dat is beleid van New York; elders kan betalen met een QR-code echt zijn. Kijk dus op de officiële website of in de app van je eigen gemeente of parkeerbedrijf hoe je daar betaalt, en wees op je hoede voor een QR-code die je niet kunt controleren, zeker een sticker over een andere code.
Ook boetes worden als lokaas gebruikt. Zoals Aragón Digital op 14 januari 2026 meldde, gaf de lokale politie van Zaragoza een preventieve waarschuwing voor valse parkeerboetes met een QR-code die achter de ruitenwisser worden gestoken: boetes worden nooit uitgereikt via een QR-code of een papiertje op de voorruit. In Zaragoza waren op dat moment nog geen gevallen bekend (Aragón Digital, 14 januari 2026).
Zelfs een menukaart kan de valkuil zijn. INCIBE beschrijft een echt geval waarin de QR-code van een restaurant de enige manier was om het menu te zien. Volgens het verhaal van de gast werd direct nadat die iets had geaccepteerd wat op een cookiemelding leek, een premium abonnement geactiveerd waar die nooit om had gevraagd, en waren andere gasten op dezelfde manier gedupeerd. INCIBE legt niet uit hoe het abonnement tot stand kwam. Vraagt een menukaart om onverwachte toestemmingen, een account of betaalgegevens, stop dan en vraag het aan het restaurant.
Kijk dus eerst naar de code zelf voordat je in de openbare ruimte scant, op een parkeerautomaat, een laadpaal, een menukaart of een poster. Is het een sticker op iets anders? Ziet hij er misplaatst uit? Wantrouw elke boete of elk betaalverzoek dat als QR-code komt, en controleer het via het officiële kanaal.
Niet inloggen of betalen via een QR-code die je niet kunt controleren
Mijn regel is simpel: log niet in en betaal niet via een QR-link die je niet kunt controleren. Je kwam er via een adres dat je vooraf niet kon lezen. Vraagt een code je om in te loggen of te betalen, sluit de pagina dan en ga zelf naar de officiële site of app: de parkeerapp die je al gebruikt, de app van je bank, het adres dat je kent. Twijfel je, vertrouw dan niet op de code maar typ zelf het officiële adres in.
Een app die laat zien wat er in een QR-code staat
Voor de duidelijkheid: deze app heb ik zelf gemaakt. QR Quishing Detector van Magentron scant QR-codes en vergelijkbare codes en laat zien wat erin staat, met verborgen of misleidende tekens zichtbaar gemaakt, voordat er iets wordt geopend. Voor webadressen geeft de app een risicoscore LOW, MEDIUM of HIGH en legt elk punt uit. De risicocontroles draaien offline op je telefoon, en de app bezoekt het gescande adres nooit. Ik verzamel niets: geen account, geen analytics, geen tracking. Een optionele opzoeking van de leeftijd van het domein, standaard uit, stuurt alleen het domein, niet het volledige adres, naar het register van dat domein; die beheerder ziet je IP-adres en het tijdstip van het verzoek, zoals het privacybeleid uitlegt. De leeftijd die het register meldt, verandert de risicoscore niet.
Een score is een reden om nog eens te kijken, geen oordeel: een lage score betekent niet dat een link veilig is, en een hoge score is geen bewijs van phishing. Een deel van de heuristische logica, de controles en de wegingen is gebaseerd op het werk van Nieves Casquero (qr_forense.py, MIT-licentie).
Binnenkort in Google Play en de App Store.
Productpagina: www.magentron.com/qr-quishing-detector
Een QR-code met een webadres is een link zonder linktekst, dus de gewoonte is dezelfde als bij e-mail: kijk waar een link heen gaat voordat je hem opent. Voor links in e-mail en op het web, zie Reveal URLs: phishinglinks herkennen voordat je klikt, en waarom mailprogramma's het adres standaard zouden moeten tonen, lees je in E-maillink-phishing: waarom je mailprogramma altijd de URL zou moeten tonen.