QR-code lezen: decodeer eerst, scan daarna veilig
Een QR-code is met het oog niet te lezen, maar de inhoud haal je in seconden eruit. Zo zie je de bestemming voordat je doorgaat — en wat die controle niet bewijst.
Dit is in twee situaties belangrijk: je staat op het punt een code te scannen die je niet volledig vertrouwt, of je wilt een code afdrukken die ergens anders is gegenereerd. Dezelfde techniek helpt in beide gevallen.
Stap 1 — Lees de inhoud in plaats van hem te openen
Een QR-code bevat tekst. Een scanner decodeert die tekst en voert er meteen een actie mee uit — opent de URL, maakt verbinding met het wifinetwerk of start het gesprek. Een decoder decodeert dezelfde tekst en toont die alleen aan jou. Dat verschil vormt de volledige veiligheidsmarge.
Maak een foto of schermafbeelding van de code en decodeer de afbeelding met onze QR-lezer. Alles gebeurt in je browser: de afbeelding wordt nooit geüpload en er wordt niets geopend. Je krijgt de ruwe inhoud als tekst.
Stap 2 — Bepaal welk soort inhoud het is
QR-inhoud volgt herkenbare indelingen. Aan het voorvoegsel zie je wat een scanner zou hebben gedaan.
| Inhoud begint met | Type | Wat een scanner zou doen |
|---|---|---|
https:// of http:// | URL | De pagina openen. Dit is het meest voorkomende geval |
WIFI:T:WPA;S:…;P:…;; | Wifi-inloggegevens | Aanbieden om verbinding te maken met dat netwerk — controleer de SSID voordat je akkoord gaat |
BEGIN:VCARD | Contactkaart | Aanbieden om een contact op te slaan |
mailto: / tel: / smsto: | E-mail, gesprek, sms | Een bericht vooraf invullen of een nummer bellen |
| Platte tekst zonder voorvoegsel | Tekst | De tekst tonen. Onschadelijk |
javascript: of een onbekend app-schema | Verdacht | Niet openen |
Op onze typepagina's leggen we elke indeling uit als je wilt zien hoe een legitieme code is opgebouwd: wifi, vCard, e-mail, telefoon, platte tekst.
Stap 3 — Beoordeel het domein
Bij inhoud met een URL is het domein bepalend — lees het van rechts naar links vanaf de eerste enkele schuine streep. In https://pay.cityparking.gov/meter/44 is het domein cityparking.gov. In https://cityparking.gov.pay-now.click/meter/44 is het pay-now.click, en is het herkenbare deel slechts versiering.
| Wat je ziet | Interpretatie |
|---|---|
| Een domein dat je herkent en bij de organisatie past | Rechtstreeks. De code gaat waar hij naartoe lijkt te gaan |
| Een generieke QR-verkorter die niet van jou is | Er zit een derde partij tussen die de bestemming kan wijzigen of uitschakelen |
| Een echte merknaam als subdomein van iets anders | Klassieke nabootsing. Controleer de labels helemaal rechts |
| Een onbewerkt IP-adres | Bijna nooit legitiem op gedrukt materiaal |
Eén waarschuwing over verkorters: als je de dienst herkent, weet je nog niet waar de link naartoe gaat. Unit 42 zegt het rechtstreeks — "Zelfs veiligheidsbewuste mensen die het URL-voorbeeld controleren voordat ze scannen, kunnen de uiteindelijke bestemming niet bepalen wanneer ze verkorte links krijgen" — en de drie diensten die zij als meest misbruikt aanmerken zijn gewone QR-generatoromleidingsdomeinen. Een bekende verkorter is geen geruststelling.
Stap 4 — Volg de omleidingsketen
Als de inhoud een korte link is en je wilt weten waar die uiteindelijk uitkomt, los hem dan op zonder de pagina te laden. Gebruik een terminal:
Voer curl -sIL "https://short.example/abc" | grep -i "^location:" uit — hiermee wordt elke stap in de keten getoond via de Location-header, zonder pagina-inhoud uit te voeren. Let op hoeveel stappen je ziet: één stap naar de verwachte bestemming is normaal, terwijl meerdere stappen via ongerelateerde hosts meestal wijzen op analyse- of advertentietussenpersonen, die elk het verzoek kunnen zien. Wat een QR-proxy logt legt uit wat die stappen verzamelen.
Twee kanttekeningen. Een omleiding kan jou de ene bestemming tonen en iemand anders een andere, afhankelijk van IP-adres, user-agent of tijd — een schoon resultaat bewijst dus wat er op dat moment bij jou gebeurde, niet wat een klant in een ander land krijgt. En de bestemming van een dynamische code kan daarna op elk moment worden gewijzigd; juist daarvoor wordt deze functie verkocht.
Hoe controleer je een code die per e-mail binnenkwam?
Behandel dit als een apart en gevaarlijker geval. Het NCSC merkt op dat QR-codes specifiek in phishingmails worden gebruikt omdat niet alle beveiligingstools afbeeldingen scannen. Daardoor kan een code een schadelijke link langs filters loodsen die dezelfde link als tekst wel zouden hebben onderschept — en door te scannen ga je naar een persoonlijke telefoon met zwakkere bescherming dan je werkcomputer.
De controle is eenvoudig. Sla de afbeelding uit de e-mail op in plaats van hem vanaf het scherm te scannen, decodeer het bestand en lees het domein. Doe dit op de computer, niet op de telefoon, zodat je het beschermde apparaat nooit verlaat. Komt het domein niet exact overeen met de organisatie waarvoor de e-mail zich uitgeeft, stop dan — neem contact op met de organisatie via de normale weg, niet via iets uit het bericht.
Let vooral op urgentie in combinatie met een code: een bezorgprobleem, een belastingbericht, een mailbox die vol zit of een account dat vandaag moet worden geverifieerd. Legitieme organisaties vragen je zeer zelden om een gedrukt vierkant te scannen om een dringend accountprobleem op te lossen. Quishing behandelt de aanvalspatronen volledig.
Wat kan een decoder je niet vertellen?
Als je de beperkingen kent, blijft de controle betrouwbaar.
- Of de bestemming veilig is. Een decoder toont het adres, niet de inhoud. Op een herkenbaar domein kan nog steeds een gehackte pagina staan.
- Wat andere mensen krijgen. Een omleiding kan verschillende bestemmingen tonen op basis van IP-adres, user-agent of tijdstip. Je schone resultaat beschrijft jouw verzoek op dat moment.
- Wat er morgen gebeurt. De bestemming van een dynamische code kan op elk moment na je controle worden gewijzigd. Daarvoor wordt deze functie verkocht, en daarom is "Ik heb hem één keer gecontroleerd" geen blijvende uitspraak over een dynamische code.
- Of de gedrukte versie overeenkomt met het bestand. Stickers die ergens overheen zijn geplakt, betekenen dat het goedgekeurde ontwerp en het object aan de muur kunnen verschillen. Alleen het decoderen van een fysieke versie vertelt je iets over die fysieke versie.
De eerste en laatste beperking verklaren waarom het zakelijke advies in deze blog steeds op hetzelfde punt uitkomt: een statische code op je eigen domein is de enige constructie waarbij een eenmalige controle geldig blijft.
Stap 5 — Controleer je eigen ontwerp voordat het naar de drukker gaat
Dit kost een minuut en voorkomt een hele categorie dure problemen.
- Exporteer het definitieve ontwerp precies zoals het wordt afgedrukt.
- Decodeer dat bestand — niet het bestand uit de voorbeeldweergave van de generator.
- Controleer of de inhoud de URL is die je bedoelde, op een domein dat je bezit.
- Is het een korte link op het domein van iemand anders, druk hem dan niet af. Genereer opnieuw een statische code.
- Scan de gedrukte proef zodra die binnenkomt en controleer of de code nog steeds op de juiste plek uitkomt.
Als een code al is afgedrukt en deze controle te laat komt, behandelt de gids voor herstel na gijzeling de opties die nog overblijven. Als de code niet meer werkt en je nog niet weet waarom, begin dan bij waarom je QR-code niet meer werkt.
Veelgestelde vragen
- Kan ik een beschadigde, vuile of gedeeltelijk afgedekte QR-code decoderen?
- Vaak wel. QR-codes gebruiken Reed–Solomon-foutcorrectie. Op het hoogste niveau kan ongeveer 30% van het patroon verloren gaan terwijl de inhoud nog steeds wordt hersteld. Wat niet mag ontbreken, zijn de drie grote vierkanten in de hoeken — dat zijn de positiemarkeringen die een decoder nodig heeft om het raster überhaupt te vinden en te richten. Een code met een afgescheurde hoek werkt meestal niet; een code met een geschuurd midden meestal wel.
- Is het veilig om een QR-code alleen te scannen om hem te bekijken?
- De meeste telefoonscanners tonen een voorbeeld voordat ze iets openen, wat redelijk veilig is. Het risico zit in automatisch doorklikken. Bij twijfel decodeer je de afbeelding in plaats daarvan — daarmee haal je het risico volledig weg.
- Hoe weet ik of een QR-code dynamisch is?
- Decodeer hem. Als de inhoud een korte link is op een domein dat niet van jou is en ook niet van de bestemmingssite, is de code dynamisch en loopt hij via die derde partij. Een statische code bevat de URL van de bestemming zelf.
- Kan ik zonder internet zien wat een QR-code doet voordat ik hem scan?
- Ja. Decoderen is een lokale berekening — een decoder die in de browser werkt, heeft geen netwerk nodig zodra de pagina is geladen, en de inhoud is tekst die je zelf kunt lezen.
- Wat moet ik doen als een gedrukte code naar een domein leidt dat ik niet herken?
- Scan hem niet en meld hem, als hij op openbare infrastructuur staat, bij de eigenaar van die plek. De FTC en FBI hebben allebei gewaarschuwd voor stickers die over legitieme codes worden geplakt; zie quishing.
Codes die je hier genereert, decoderen altijd precies naar wat je hebt ingevoerd: QR-code voor URL. Meer context vind je in de waarheid over QR-codefraude.
Klaar voor een statische QR-code?
Genereer er een in je browser — geen account, geen tracking, geen abonnement. Wat je maakt is van jou.
Gerelateerde artikelen
QR-phishing: misbruikte domeinen zijn QR-generatoren
De omleidingslaag die ‘gratis’ QR-generatoren aan gewoon drukwerk toevoegen, is dezelfde laag waarop aanvallers vertrouwen — en scanners verloren daardoor hun laatste verdedigingslinie.
Statische vs dynamische QR-codes: wat elke gebruiker zou moeten weten
De een codeert je content; de ander codeert een redirect. Dat ene verschil bepaalt of je QR over vijf jaar nog werkt.
QR-code gegijzeld: koop één maand, geen jaarplan
Eerste hulp bij een uitgeschakelde code: wie heeft de controle, wat kost ontsnappen en welke ene stap voorkomt dat dit opnieuw gebeurt.
5 rode vlaggen dat je QR-generator een valstrik is
Vijf signalen die eerlijke QR-tools scheiden van dynamisch-standaard generatoren die je later huur laten betalen of je codes uitzetten.
QR-scans loggen data: jij draagt de aansprakelijkheid
Scananalyses zijn geen extra functie. Ze zijn de reden dat de omleiding bestaat — en niet de partij die de gegevens bewaart, maar een andere partij draagt het juridische risico.