# Is het veilig om een QR-code te scannen?

Het scannen zelf wel. Een QR-code is een stukje tekst, en er een camera op richten doet niets anders dan die tekst lezen. Alles wat mis kan gaan gebeurt één tik later, wanneer iets opent wat er gelezen is — en die tik kun je voor je houden.

Laatst bijgewerkt 26 augustus 2026

## Het korte antwoord

Scannen is veilig. Een QR-code is een kort stukje tekst, getekend als blokjes, en er een camera op richten doet precies één ding: het leest die tekst terug. Dat lezen kan niets installeren, niets bezoeken en niets op je telefoon aanraken, om dezelfde reden dat het bekijken van een geschreven adres je er niet heen brengt.

Het gevaar begint één stap later, wanneer iets *opent* wat er gelezen is — en de hele truc van elke QR-zwendel is die stap te laten gebeuren voordat je gezien hebt waar je heengaat. De tekst in de code is een adres dat niemand met het blote oog kan lezen, en de meeste telefoons beantwoorden hem met één gretige tik. Houd het lezen en het openen uit elkaar, en de zwendel heeft niets meer om mee te werken.

## Wat een QR-code werkelijk is

Onder de blokjes zit niets anders dan een reeks tekens: hooguit een paar duizend, meestal veel minder. Een webadres, een wifi-netwerknaam met wachtwoord, een contactkaart, een regel tekst. Het formaat is in 1994 ontworpen om auto-onderdelen door een Toyota-fabriek te volgen, en het bevat geen enkele instructie. Een QR-code kan net zomin “een virus bevatten” als een wegwijzer dat kan.

Wat hij wel kan bevatten is tekst die je telefoon iets *vraagt*: open dit adres, sluit aan bij dit netwerk, bewaar dit contact. Elk daarvan is een verzoek, geen bevel. De code stelt voor; wat hem scande beslist. Een scanner die je de tekst laat zien en wacht, is volkomen veilig. Een scanner die zelf op de tekst handelt, heeft de beslissing overgedragen aan degene die de code drukte — en dat is het hele verschil tussen een veilige scan en een gevaarlijke.

Eén voetnoot, voor de eerlijkheid: het programma dat decodeert kan fouten bevatten, zoals elk programma dat invoer ontleedt, en zulke fouten zijn er in scanners door de jaren heen geweest. Maar dat risico hoort bij de scanner, niet bij de code, en het is niet waar de zwendel op leunt. Die leunt op de tik.

## De stickertruc

De zwendel die gewoon genoeg is geworden om een naam te verdienen — quishing — is bijna beschamend simpel: druk een eigen code, plak hem over een echte, wacht af. Op een parkeerautomaat, waar de neppe naar een betaalpagina leidt die op die van de gemeente lijkt. Op een restauranttafel, over het menu. Op het niet-thuis-briefje in de bus, naast de woorden “we hebben je gemist”.

Let op wat de truc doet werken. Het is geen technisch vernuft — dat is er niet. Het is dat een QR-code de ene soort adres is die een mens niet kan lezen voordat hij hem volgt. Een krom webadres in letters verraadt zichzelf aan iedereen die kijkt; hetzelfde adres als blokjes getekend ziet er precies uit als een eerlijk adres. Tegen de tijd dat je kunt zien waar de code heenging, ben je er al — op een pagina die gebouwd is om te lijken op de pagina die je verwachtte, en die om je kaartnummer vraagt.

De verdediging is niet om te stoppen met scannen. Ze is om *tussen* de scan en het bezoek naar het adres te kijken, wat ongeveer twee seconden kost en de truc volledig onschadelijk maakt.

## Drie manieren waarop een adres liegt

Twee seconden kijken is genoeg, maar alleen als je weet waarnaar. Er zijn drie eerlijk ogende gedaanten die een krom adres aanneemt, en alle drie zijn ze het waard om van gezicht te kennen.

### 1. De naam vóór de @

Een webadres mag een gebruikersnaam dragen, geschreven vóór een `@`-teken: alles tot aan de `@` is versiering, en de echte bestemming begint erna. `jouwbank.nl@evil.example` gaat niet naar je bank. Het gaat naar `evil.example`, met “jouwbank.nl” als betekenisloze inlognaam in de bagage. Het oog leest het begin van een adres; de browser leest het einde.

### 2. Letters die niet de letters zijn waar ze op lijken

Alfabetten overlappen. Een cyrillische `а` wordt precies zo getekend als een Latijnse `a`, en een adres dat ermee geschreven is, is een ander adres dat er op het scherm identiek uitziet. De truc heeft een naam — homograafaanval — en hij is de reden dat een bestemming letter voor letter kan kloppen met de bestemming die je vertrouwt, en toch ergens anders ligt.

### 3. De eerlijke eerste halte

Het adres in de code kan oprecht respectabel zijn — een linkverkorter, een marketingdoorverwijzing, de klikregistratie van een zoekmachine — en je enkel *doorsturen* naar een plek die dat niet is. Het eerste adres doorstaat de keuring; de bestemming wordt door een server bepaald wanneer je al onderweg bent. Een verkort adres in een gedrukte code bewijst niets kwaads, maar het betekent wel dat het adres dat je kunt controleren niet het adres is waar je aankomt.

## Hoe je er veilig een scant

De regel past in één zin: **eerst lezen, dan openen, en nooit beide met één gebaar.** In de praktijk:

- Gebruik een scanner die je de gedecodeerde tekst toont en dan stopt. De meeste telefooncamera's tonen de bestemming in een klein vaandeltje voordat ze openen — lees dat vaandeltje in plaats van het uit reflex aan te tikken, en lees het *einde* van het adres, niet het begin.
- Wees het wantrouwigst waar de inzet het hoogst en het oppervlak openbaar is: alles wat op een betaling uitdraait, alles wat buiten hangt. De code op een parkeerautomaat verdient meer bedenktijd dan die op een museumbordje.
- Een code die rechtstreeks naar een inlog- of kaartgegevenspagina leidt, is het moment om te stoppen en in plaats daarvan het adres in te typen dat je al kent. De echte versie van die pagina is nooit meer dan een paar toetsaanslagen ver.
- Wifi-codes en contactkaarten verdienen dezelfde pauze: de een vraagt je telefoon een netwerk te onthouden, de ander een persoon op te slaan. Beide zijn prima om bewust te aanvaarden, en geen van beide hoort stilzwijgend te gebeuren.

## Hoe de lezer hier zich gedraagt

Deze site heeft een [QR- en barcodelezer](https://abox.tools/nl/qr-code-scannen/), en die is gebouwd op de regel waar deze pagina voor heeft gepleit: **hij opent nooit iets.** De gedecodeerde tekst wordt volledig afgedrukt, de host die het adres werkelijk zou bereiken wordt op een eigen regel gezet, en de drie vermommingen hierboven worden gecontroleerd en benoemd wanneer ze opduiken. De link openen is een aparte knop, ingedrukt na het lezen — of nooit.

Het lezen zelf gebeurt op je eigen machine. De afbeelding die je scant wordt in je browser gedecodeerd en nergens heen gestuurd, zodat je een code die je niet vertrouwt kunt onderzoeken zonder dat iemand — deze site inbegrepen — te weten komt wat erin stond; de pagina blijft werken met de wifi uit, wat de eenvoudigste manier is om die bewering te controleren. En een lading die ronduit vijandig is, zoals een `javascript:`-adres dat code zou uitvoeren bij wie het opent, krijgt helemaal geen link en wordt genoemd wat ze is.

De andere helft bestaat ook: een [QR-codegenerator](https://abox.tools/nl/qr-code-maken/) die codes op je eigen machine tekent, en een bijbehorende gids over [een code maken en bewijzen dat hij scant](https://abox.tools/nl/gidsen/qr-code-maken-en-bewijzen-dat-hij-scant/) voordat hij naar de drukker gaat. En als achter je vraag de bredere schuilging — wat het werkelijk doet om wat dan ook aan een website te overhandigen — dan heeft die [een eigen pagina](https://abox.tools/nl/gidsen/is-bestanden-uploaden-veilig/).
