Je betaalpagina scant je eigen computer, en ANWB trackt voor je cookiekeuze

Ik legde een doodgewone sessie op www.anwb.nl vast, twee keer: een keer met cookies geweigerd en een keer met alles geaccepteerd, tot en met een iDEAL-betaling. Twee dingen springen eruit. De iDEAL-betaalpagina vuurt 353 verzoeken naar poorten op je eigen computer, en dat gebeurt ongeacht je cookiekeuze. En ANWB stuurt al gedrag naar Google voordat je iets hebt aangeklikt, via een eigen subdomein dat trackerblokkers omzeilt. De zware advertentiepixels respecteren je weigering wel. Een netwerkanalyse, eerlijk over wat hard gemeten is en wat een gevolgtrekking is.

Illustratie van Mick Beer: twee jonge mensen en een ANWB-wegenwachtmonteur in blauwe overall kijken onder de openstaande motorkap van een blauwe auto waar groenige rook uit walmt, naast een gele ANWB-bus met nummer 2926. Kop: ja, hier zit een luchtje aan.

Ik legde een doodgewone sessie op www.anwb.nl vast, twee keer: een keer met cookies geweigerd en een keer met alles geaccepteerd, allebei tot en met een iDEAL-betaling. Twee dingen springen eruit. De iDEAL-betaalpagina vuurt 353 verzoeken naar poorten op je eigen computer, en dat gebeurt ongeacht je cookiekeuze. En ANWB stuurt al gedrag naar Google voordat je iets hebt aangeklikt. De zware advertentiepixels respecteren je weigering wel. Hieronder wat er vertrekt, waarheen, en wat hard gemeten is en wat niet.

Je verlengt je lidmaatschap, je regelt een verzekering, je rekent af. Een vertrouwde Nederlandse club, een vertrouwd betaalmerk. Niets aan de hand, zou je denken. Maar onder de motorkap gebeuren in diezelfde seconden dingen die niemand je heeft uitgelegd, en eentje daarvan raakt niet ANWB maar het hart van het Nederlandse betaalverkeer.

Ik heb het netwerkverkeer van een ingelogde sessie vastgelegd in vijf HAR-bestanden, samen ongeveer 83 megabyte, en daar regel voor regel doorheen gewerkt. Geen aannames vooraf: gewoon kijken wat het toestel verstuurt, naar wie, en op welk moment.

“Laat Mick maar praten, het is gewoon een betaalpagina.” Tot je ziet wat die pagina naar je eigen computer stuurt.

Wie, wat, waarheen, in het kort
WieWatWaarheen
iDEAL / Currence (de betaalpagina)353 verbindingspogingen naar zeven poorten op 127.0.0.1, je eigen computer, tijdens het betalen. Ongeacht je cookiekeuze.Blijft op je toestel (de poorten antwoorden niet). Doel is vrijwel zeker detectie van software op afstand.
ANWB (vóór toestemming)Gedragsgebeurtenissen zoals page_view, login en scroll, plus advertentiepings.Via het eigen subdomein sst.anwb.nl server-naar-server naar Google, en direct naar Google Ads.
ANWB (ná toestemming)Het volledige pakket: remarketing, een klantprofiel met je IP-adres, en sessie-opname.Google, Meta, Microsoft, en BlueConic op een eigen subdomein.

De korte versie

Wat ik onderzocht, en hoe

Ik heb met de browser het volledige netwerkverkeer opgenomen van een ingelogde sessie op www.anwb.nl, doorlopend tot een echte iDEAL-betaling. Dat levert een HAR-bestand op: een letterlijk logboek van elk verzoek dat de browser doet, met adressen, kopteksten en, waar de browser ze bewaart, de inhoud.

Het belangrijkste in de opzet: ik heb het twee keer gedaan. Eén keer met de cookiebanner op weigeren, en één keer met alles accepteren. Zo kun je precies zien wat er afhangt van je toestemming en wat niet. Dat de twee echt verschillen, is geen interpretatie: ANWB’s eigen toestemmingscookie legt het vast.

De twee runs, bewezen via ANWB's eigen cookie
ModusCookie cookie-policy-agreementGoogle-signaal gcs
ZONDER (geweigerd){"REVISION":20,"consentLevel":1}G100 (analytics + ads geweigerd)
MET (geaccepteerd){"REVISION":20,"consentLevel":3}G111 (beide toegestaan)

Deel 1 · Je betaalpagina scant je eigen computer

Dit is de vondst die er het meest uitspringt, en die niet over ANWB gaat maar over iDEAL zelf.

Op het moment dat de iDEAL-betaalpagina laadt, begint je browser verbindingen op te zetten naar je eigen computer. Niet naar internet: naar 127.0.0.1, het adres dat altijd “deze machine hier” betekent. In totaal 353 keer, verdeeld over zeven vaste poorten, telkens met het pad /initiate.

353x GET /initiate · no-cors

status 0 · niets luistert · geweigerd

Jouw eigen computer · localhost

127.0.0.1 : 666

127.0.0.1 : 6039 · 7070

127.0.0.1 : 9527 · 9528

127.0.0.1 : 37014 · 37114

Jouw browser
pay.ideal.nl staat open

De scan. De betaalpagina probeert zeven poorten op je eigen machine te bereiken. Op een schone computer luistert daar niets, dus alle pogingen worden geweigerd (status 0). Juist dat geweigerd-worden vertelt de pagina iets: wat er niet draait.

De poorten zijn 666, 6039, 7070, 9527, 9528, 37014 en 37114. Poort 666 wordt het vaakst geprobeerd (88 keer), de rest elk een stuk of vijftien keer. De verzoeken zijn van het type no-cors, wat een belangrijk detail is: de pagina mag het antwoord niet lezen, maar kan wel detecteren of er iets antwoordt. Dat is precies de techniek waarmee je van buitenaf kunt vaststellen of er op je computer een bepaald programma draait, zonder dat je het kunt zien.

Waarom doet iDEAL dit? Het eerlijke antwoord: het meest waarschijnlijke doel is het opsporen van software waarmee iemand je computer op afstand overneemt of meekijkt. Dat is een bekende anti-fraudetechniek tegen oplichting waarbij een crimineel je tijdens een betaling aan de lijn houdt en het scherm overneemt. De zeven poorten passen bij dat soort programma’s. Maar let op het bewijsniveau: de scan zelf heb ik gemeten, het doel is een gefundeerde gevolgtrekking. De code die de exacte poort-naar-programma-vertaling maakt, zit in een bestand van 1,64 megabyte dat de browser bij het opslaan op precies 1,0 megabyte heeft afgekapt. Ik kan die code dus niet letterlijk citeren, alleen het gedrag dat eruit voortkomt. (Inmiddels achterhaald, zie de update direct hieronder.)

Poort → programma, uit iDEAL's eigen configuratie (16 juni 2026)
PoortLabel in de configProgramma
6039TEAMVIEWER HASHTeamViewer
7070ANYDESK HASHAnyDesk
9527STSTREAMER_HASHSplashtop Streamer
9528STSOS_HASHSplashtop SOS
37014 · 37114TV_ACTIVE_HASHTeamViewer (actief)
666csdTestObjectijk-/controlepoort, geen programma

Dezelfde module doet trouwens meer dan poorten scannen: ze leest ook het betaalbedrag en de begunstigde uit de pagina (data-testid=payment-amount-euros en …-creditor) en let op of de pagina onderweg gewijzigd wordt. Het resultaat gaat eerste-partij terug naar iDEAL (PUT pay.ideal.nl/api/v1/transactions/initiate). Wie de module precies levert, is uit de sterk versluierde code niet hard vast te stellen; dat houd ik bij de feiten weg.

Technisch: de bouwers en de telemetrie van de betaalpagina

De betaalpagina pay.ideal.nl draagt de titel "iDEAL | Wero" en is gebouwd door @payconiq (Payconiq International, de partij achter de nieuwe iDEAL). De pagina meet zichzelf met twee telemetriesystemen: Elastic APM (apm.idealapi.nl, agent rum-js 5.16.0, service ideal-payment-page-frontend) en AWS CloudWatch RUM. In de telemetrie staat onder meer "referer":"https://www.anwb.nl/", de winkel waar de betaling vandaan komt. Naast de localhost-scan deed de pagina ook twee echte, normale verzoeken aan pay.ideal.nl/api/v1/.../initiate (de transactie zelf, status 200): die horen er gewoon bij en zijn iets anders dan de localhost-pogingen.

En het venijn: deze scan trekt zich niets aan van je cookiekeuze. In de geweigerde run gebeurde het 177 keer, in de geaccepteerde run 176 keer. Logisch, want het is geen marketing. Maar het betekent ook dat je er op geen enkele knop “nee” tegen kunt zeggen.

Deel 2 · Wat vuurt er vóór je iets aanklikt

Nu naar ANWB zelf. De grote vraag bij elke website: wat gebeurt er als je de cookies weigert? Het korte antwoord hier: minder dan met accepteren, maar niet niets.

Weigeren
consentLevel 1 · gcs=G100

Alles accepteren
consentLevel 3 · gcs=G111

Je opent www.anwb.nl

Cookiebanner

ZONDER toestemming

MET toestemming

sst.anwb.nl · server-side GA4
page_view · login · scroll

Google Ads · ccm-pings

Sentry · errors + replay

Alles uit ZONDER, plus:

BlueConic CDP
+ jouw IP-adres

Meta · Bing · DoubleClick
Google-remarketing

Contentsquare · session-replay

iDEAL localhost-scan
vuurt in BEIDE modi

Twee modi. Links wat er gebeurt als je weigert, rechts wat erbij komt als je accepteert. De advertentiepixels zitten netjes rechts. Maar de tak linksonder, analytics naar Google ondanks je weigering, is het echte twistpunt.

ANWB gebruikt server-side tagging. Op een eigen subdomein, sst.anwb.nl, draait een kopie van Google Tag Manager. Je gegevens gaan eerst naar dat ANWB-adres, en van daaruit server-naar-server door naar Google. Het effect: voor je browser en voor trackerblokkers ziet het eruit als “gewoon ANWB”, terwijl het in werkelijkheid het doorgeefluik naar Google is. Dat heet first-party cloaking, en het is precies waarom dit soort verkeer zo lastig te zien is.

Met cookies geweigerd (gemeten) vertrok er tóch:

En wat respecteerde de weigering wel? Een hoop, en dat hoort gezegd te worden. In de geweigerde run zag ik geen Meta, geen Microsoft Bing, geen DoubleClick, geen remarketing, geen BlueConic-klantprofiel en geen Contentsquare. Die kwamen allemaal pas ná “alles accepteren”. Op dat punt doet ANWB het dus zoals het hoort.

Wat vuurde, per modus (aantal verzoeken, gemeten)
DienstZONDER (geweigerd)MET (geaccepteerd)
Vuurt ondanks weigering
iDEAL localhost-scan (127.0.0.1/initiate)177×176×
sst.anwb.nl server-side GA418×14×
Google Ads-pings (ccm/collect)
Sentry (fouten + replay)27×13×
LivePerson chat / Expoints feedback26× / 24×20× / 13×
Pas ná toestemming
BlueConic klantprofiel (met je IP)22×
Google-remarketing (ads/ga-audiences)10×
DoubleClick / Meta / Bing / Contentsquare4× / 2× / 2× / 2×

Deel 3 · Waar je gegevens heen gaan

Als je wél accepteert, ontvouwt zich het complete beeld. Het mooie nieuws eerst: ik heb gecontroleerd of je identiteit (e-mailadres, account-id, IP-adres, betaaltoken) ergens naar een derde partij vertrekt, en dat heb ik in deze opnames niet gevonden. Je persoonsgegevens blijven binnen de ANWB-subdomeinen. Het gaat dus niet om een directe verkoop van je naam aan adverteerders, maar om gedrag, een IP-adres, en de timing rond je toestemming.

Eerste partij · anwb.nl-subdomeinen

server-naar-server

pre-consent ping

Betaalpagina · iDEAL / Currence

scant jouw
localhost-poorten

apm.idealapi.nl
telemetrie

Jij · ingelogd ANWB-lid

login.anwb.nl
e-mail + uuid + token · JSONP

sst.anwb.nl
server-side GTM · GA4

t066.anwb.nl
BlueConic CDP + jouw IP

Sentry · EU/Frankfurt
errors + replay

Google
GA4 + Ads

De datastroom. Alles wat je identificeert blijft op ANWB-subdomeinen (het blok in het midden). De doorgifte naar Google gebeurt server-naar-server vanaf sst.anwb.nl. De betaalpagina staat los, met de localhost-scan.

De opvallendste verwerker is BlueConic, een klantdataplatform, verstopt op het ANWB-subdomein t066.anwb.nl. Dat platform kreeg je echte IP-adres te zien (het kaatste het netjes terug in zijn antwoord) en draagt een rijke lijst gedragslabels: of je op het punt staat weg te klikken, of je inactief bent, of je een route plant, en, veelzeggend, Lidnummer bekend, plus verzekeringstrechters met namen als Woonverzekering vragenlijst. Dit is profilering, gekoppeld aan je lidmaatschap. Belangrijk en eerlijk: dit vuurde alleen ná toestemming. Weiger je, dan blijft BlueConic stil.

Deel 4 · Sentry en sessie-opname

Op de site zit Sentry, een dienst voor foutmeldingen. Twee aparte Sentry-projecten, en ze vuren ook al voordat je toestemming geeft. Goed nieuws voor de datasoevereiniteit: deze Sentry draait op de Europese omgeving (Frankfurt), niet in de VS.

Wat ik wel kan vaststellen: de ANWB-code laadt naast foutopname ook de sessie-opname-module van Sentry (de zogeheten Replay, die letterlijk je schermgedrag kan terugspelen). Wat ik niet kan vaststellen uit deze opnames: hoe vaak die opname aanstaat en of er gevoelige gegevens in worden vastgelegd. De inhoud van die Sentry-verzoeken heeft de browser namelijk niet bewaard, de verzoeken zijn leeg in mijn log. Ik laat dat hier nadrukkelijk open: de mogelijkheid zit aantoonbaar in de code, het bewijs van wat er wordt opgenomen ontbreekt. Daarnaast staan er nog Contentsquare (sessie-opname, pas ná toestemming) en LivePerson (chat, met de mogelijkheid tot meekijken) op de site.

Wat hard is, en wat niet

Dit hoort er bij elk eerlijk onderzoek bij. Tijdens het graven ben ik ook een paar dingen tegengekomen die er op het eerste gezicht erger uitzagen dan ze zijn. Die corrigeer ik liever zelf dan dat ik ze laat staan.

Eén kanttekening over hygiëne aan ANWB’s kant: in de publieke Google-configuratie van de site staat een intern e-mailadres van een ANWB-medewerker hardcoded. Dat is niet jouw data, maar het hoort niet in code die aan iedereen wordt uitgeleverd.

Wat je kunt doen

← terug naar artikelen