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.
Die asymmetrie is het deel waarover bijna niemand die een QR-code inzet is geïnformeerd, en het is de reden dat dit een compliancevraag is en geen curiositeit. Wanneer een aanbieder „scananalyses” aanprijst, draai de formulering dan om: analyses zijn alleen mogelijk omdat elke scan verplicht via hun infrastructuur loopt. De tracking is niet achteraf aan de omleiding toegevoegd — de omleiding bestaat zodat tracking mogelijk is.
Wat gebeurt er wanneer iemand een statische code scant?
Niets, voor zover het derden betreft. Dat is de basis, en daardoor wordt het verschil concreet.
Een statische QR-code bevat de bestemming als letterlijke bytes in het patroon. De camera decodeert die lokaal, op de telefoon, en geeft de URL door aan de browser. De browser maakt vervolgens verbinding met jouw server. Er is geen tussenstap, geen derde partij en geen manier waarop iemand behalve jij weet dat de scan heeft plaatsgevonden.
Dit is geen privacyfunctie die iemand heeft ontworpen. Het is het gevolg van een formaat dat alleen doet wat het beweert te doen — zie statisch versus dynamisch.
Wat komt er zonder extra moeite bij de proxy aan?
Een dynamische code bevat iets als https://qr-short.example/a1B2c3. De telefoon maakt eerst verbinding met die host; pas nadat de aanbieder antwoordt, leert de browser de echte bestemming. Die verbinding is een gewoon webverzoek, dus de aanbieder ontvangt alles wat een gewoon webverzoek meedraagt — voordat een toestemmingsbanner verschijnt, voordat een privacybeleid is gelezen en voordat de scanner weet met welke server verbinding is gemaakt.
| Veld | Wat het onthult |
|---|---|
| IP-adres | Globale locatie, internetprovider en op een bedrijfs- of campusnetwerk de organisatie zelf |
| Tijdstip | Tijdstip van de dag en dag van de week, tot op de milliseconde |
| User-agent | Besturingssysteem, versie van het besturingssysteem, browser, browserversie en vaak het apparaatmodel — op zichzelf al een reëel oppervlak voor fingerprinting |
| Accept-Language | Talen die op het apparaat zijn ingesteld |
| Referrer | Bij een camerascan meestal leeg — wat scans op zichzelf onderscheidt van klikken op links |
| Het korte pad | Welke specifieke poster, tafel, campagne of producteenheid is gescand, en dus waar de persoon zich fysiek bevindt |
Wat voegt de omleidingsstap hieraan toe?
Omdat de aanbieder het antwoord beheert, zijn zij niet beperkt tot passief loggen. Een omleidingsstap is een plek om *te handelen*:
- Een cookie op het eigen domein instellen voordat de bezoeker wordt doorgestuurd. Elke code van die aanbieder — op elke poster, van elk bedrijf — kan nu aan hetzelfde apparaat worden gekoppeld.
- Trackingparameters toevoegen aan de bestemmings-URL, zodat hun identificatoren in jouw analyses terechtkomen.
- Een tussenscherm tonen in plaats van direct door te sturen. Dat voert JavaScript uit, waardoor fingerprinting van canvas en lettertypen, schermafmetingen, tijdzone en aanwijzingen over de hardware mogelijk wordt.
- Via verdere tussenstappen doorsturen, waaronder advertentie- of attributiepartners, die elk de volledige verzameling opnieuw uitvoeren.
De laatste mogelijkheid is het minst zichtbaar en heeft de grootste gevolgen. Als je een omleidingsketen vanaf een korte QR-link volgt, zie je soms meerdere hosts tussen de scan en de bestemming — hoe je controleert waar een QR-code echt naartoe leidt laat zien hoe je er een trace van maakt.
Hoeveel partijen zitten er eigenlijk in de keten?
Vaak meer dan één. De aanbieder is de eerste tussenstap, maar het antwoord dat zij terugsturen kan vóór jouw server naar een andere host verwijzen, en die host kan weer naar een derde verwijzen.
Dit is niet hypothetisch. Unit 42 van Palo Alto volgde verkeer via QR-verkortingsdiensten en zag dit groeien met 55% van de eerste helft van 2023 tot de eerste helft van 2024, en daarna nog eens 44% tot de eerste helft van 2025 — een hele omleidingslaag die vóór het QR-web niet bestond en nu tussen fysieke objecten en de sites die ze aanprijzen staat. Elke tussenstap is een onafhankelijke partij die een volledig HTTP-verzoek ontvangt.
Je kunt je eigen blootstelling meten. Voer curl -sIL "https://short.example/abc" | grep -i "^location:" uit op de korte link in je afgedrukte code; elke regel met Location is één organisatie die elke scan ziet. Als het aantal hoger is dan één, worden je scandata gedeeld met partijen waarmee je nooit een contract hebt gesloten en die je niet bij naam kunt noemen. Hoe je controleert waar een QR-code echt naartoe leidt legt uit hoe je de uitvoer leest.
Hoe worden afzonderlijke gegevens samen een profiel?
Afzonderlijk is elk veld onopvallend. Gecombineerd, bij een aanbieder die codes voor duizenden bedrijven beheert, vormen ze iets heel anders.
Een aanbieder waarvan de codes op restauranttafels, winkelrekken, evenementbadges en parkeermeters staan, kan voor één terugkerende apparaatfingerprint waarnemen waar dat apparaat naartoe gaat en hoe vaak, omdat elke code aan een fysieke plek is gekoppeld; de volgorde en tijdstippen van die bezoeken, waaruit routines en woon-werkverkeer blijken; globale woon- en werkgebieden door patronen op voorspelbare tijdstippen; en met welke bedrijven het apparaat contact heeft, ook bij bedrijven die geen enkele relatie met elkaar hebben.
Geen enkel bedrijf heeft een locatienetwerk ingezet. De aanbieder heeft er een samengesteld uit het drukwerk van iedereen — en elk bedrijf betaalde om zijn eigen deel van het sensornetwerk af te drukken.
Wie is juridisch verantwoordelijk — jij of de aanbieder?
Iemand die een menucode scant, stemt ermee in een menu te bekijken. Die persoon stemt niet bewust ermee in contact op te nemen met een extern analysebedrijf en kan ook niet ontdekken dat dit gebeurt: het afgedrukte vierkant geeft niet aan naar welke host het verwijst.
Dat is een probleem voor het bedrijf dat de code heeft ingezet, niet alleen voor de scanner. Het Hof van Justitie oordeelde in *Breyer* (C-582/14) dat een dynamisch IP-adres dat door een sitebeheerder wordt gelogd, persoonsgegevens kan vormen, omdat het onderscheiden van iemand voldoende is — een naam is niet nodig. Volgens de AVG ben jij, als je de code hebt afgedrukt die je klanten via een verwerker doorstuurt, doorgaans de partij die een rechtsgrond, informatie en meestal een verwerkersovereenkomst nodig heeft.
Dit is algemene informatie en geen juridisch advies; de details verschillen per rechtsgebied en hangen af van wat de aanbieder daadwerkelijk doet. Maar let op de structuur: de aanbieder krijgt de gegevens en het bedrijf dat de code heeft afgedrukt draagt het risico. Die asymmetrie is een van de minst besproken kosten van „gratis”.
Waar komen de gegevens uiteindelijk terecht?
- Overname. Scanlogs zijn een bezit. Wanneer een aanbieder wordt overgenomen, gaan de logs mee, onder het beleid dat de overnemer vervolgens hanteert.
- Insolventie. Als een aanbieder failliet gaat, maken de gegevens deel uit van de boedel — en dat is hetzelfde moment waarop je afgedrukte codes niet meer werken. Zie waarom QR-codes niet meer werken.
- Datalek. Locatie- en tijdgegevens die aan apparaatfingerprints zijn gekoppeld, zijn aantrekkelijk voor aanvallers en na openbaarmaking feitelijk onmogelijk onschadelijk te maken.
Hiervoor hoeft vandaag niemand zich misdragen. Dit is simpelweg wat er na verloop van tijd met een dataset gebeurt.
Hoe meet je een campagne zonder tussenpersoon?
Het is volkomen redelijk om te willen weten of een campagne heeft gewerkt. Je hebt daarvoor geen derde partij nodig.
Druk een statische QR-code af met een URL op je eigen domein en je eigen campagneparameter: https://yourcompany.com/menu?src=table-tent. Je server logt het bezoek. Je analyses tellen het. Niemand anders zit in de route, de scanner maakt alleen verbinding met het bedrijf waarmee die contact wilde opnemen en de code blijft werken ongeacht iemands factureringsstatus.
Gebruik per plaatsing een ander pad of een andere parameter en je krijgt attributie per poster — dezelfde nauwkeurigheid als in het dashboard dat aan je werd verkocht, zonder je klanten aan een onbekende over te dragen. Word voor altijd eigenaar van je QR-codes behandelt de configuratie.
Veelgestelde vragen
- Kan een statische QR-code mij volgen?
- Niet op zichzelf. De code bevat geen identificator en maakt geen verbinding met een derde partij. Wat de bestemmingssite doet — de eigen analyses, de eigen cookies — is een aparte kwestie, en het is de site die je van plan was te bezoeken.
- Weet een QR-code wie ik ben?
- De code weet niets; het is inkt. Bij een dynamische code ziet de server van de aanbieder je IP-adres, apparaat en tijdstip. Dat is genoeg om je bij benadering te lokaliseren en te fingerprinten en om hetzelfde apparaat in hun andere codes te herkennen.
- Is het volgen van scans legaal?
- Dat kan, met een rechtsgrond en goede informatie. Het terugkerende probleem is dat de scanner nooit wordt verteld dat er een derde partij betrokken is, en dat het bedrijf dat de code heeft afgedrukt dat vaak ook niet weet. Volgens de AVG komt dat risico meestal bij het bedrijf te liggen, niet bij de aanbieder.
- Heb ik een cookiebanner nodig voor QR-codescans?
- Een statische code heeft niets extra's nodig: de scan is gewoon een bezoek aan je site, onderworpen aan de toestemming die je site al regelt. Een dynamische code is anders, omdat er contact wordt gemaakt met de aanbieder en die de bezoeker logt voordat je pagina — en dus voordat een banner van jou — kan verschijnen. Waar daarvoor een rechtsgrond nodig is, moet doorgaans jij die vaststellen, niet de aanbieder.
- Kan ik zien of een code die ik al heb afgedrukt scans volgt?
- Ja. Decodeer de code met onze lezer. Als de inhoud een korte link is op een domein dat je niet bezit, gaat elke scan via die host en wordt die gelogd.
Niets wat je hier maakt, raakt een server — codes worden in je browser geproduceerd en we loggen geen scans, omdat we nooit in de route zitten. Begin met een QR-code voor een URL, of lees de waarheid over QR-codefraude voor het volledige beeld.
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-code-redirect-kaping: de onzichtbare tussenpersoon
Zolang je QR werkt, is de tussenpersoon onzichtbaar. Als hij breekt, is het te laat. Het redirect-model begrijpen is de eerste stap om het te vermijden.
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-menu’s: wijzig de menupagina, niet de code
Er wordt gezegd dat je een bewerkbare code nodig hebt. Wat dagelijks verandert, is de inhoud van de menupagina, niet het adres — en een statische code doet dat gratis.
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.
Bewerkbare QR-codes zonder abonnement: één regel config
Het antwoord op "maar ik moet de bestemming later kunnen wijzigen" is geen abonnement. Het is een redirectpad op een domein dat je al bezit.