Privacyschandpaal

Hoe er gemeten wordt

Wat hier staat, en wat niet

Deze site publiceert waarnemingen. Een regel als “laadde twaalf trackers voordat er toestemming was” is iets wat op een bepaald moment is gebeurd en wat iedereen kan nameten. Een zin als “overtreedt de AVG” staat er nergens, en zal er ook nooit staan: of iets is toegestaan hangt af van verwerkersovereenkomsten, grondslagen en uitzonderingen die een geautomatiseerde meting niet kan zien. Dat oordeel is aan de toezichthouder en aan de rechter.

Wat je hier vindt is dus geen verwijt maar een momentopname, met datum en bewijs erbij.

De twee metingen

Elke site krijgt twee losse cijfers, allebei van bestaande tools op snelle.tools die iedereen zelf opnieuw kan draaien.

Lektest — weegt 60%
De pagina wordt geopend in een echte browser. Er wordt geteld welke verzoeken, cookies en opslagsleutels er verschijnen voordater ergens op geklikt is. Daarna wordt er op “weigeren” geklikt en opnieuw gekeken, en tot slot wordt er in formuliervelden getypt zonder iets te versturen — om te zien of wat je intypt al onderweg gaat. Cookieloze statistiek (Matomo, Plausible en verwanten) telt niet mee als overtreding: die valt onder de uitzondering van artikel 11.7a lid 3 Telecommunicatiewet.
Hosting Checker — weegt 40%
Waar staat de webserver, wie beheert de naamservers, waar gaat de mail heen, welke externe diensten worden gebruikt. Beoordeeld op twee vragen tegelijk: in welk land staat het apparaat, en onder welk recht valt het bedrijf. De zwaarste van de twee telt — een server van een Amerikaans bedrijf in Frankfurt valt onder Amerikaans recht.

Het totaalcijfer

Het totaal is een gewogen gemiddelde: de lektest telt voor 60%, de hostingcontrole voor 40%. De lektest weegt zwaarder omdat een tracker die afgaat voordat een bezoeker iets heeft gekozen een gebeurtenis is met een directe juridische toets eraan; de vraag onder welk recht een server valt is echt, maar staat een stap verder van de bezoeker af.

Cijfers lopen van A (90 of hoger) tot F (onder de 35) — dezelfde schaal als beide onderliggende tools, zodat je geen derde meetlat hoeft te leren.

Lukt één van de twee metingen niet, dan komt er geencijfer. Een site met alleen een hostingcontrole zou anders beoordeeld worden op iets anders dan waar deze lijst over gaat, en zonder de lektest kan die site zelfs bovenaan komen te staan op een getal dat niets zegt over trackers. Zo’n site houdt haar eigen pagina, met daarop wat er wél gemeten is, maar staat niet in de ranglijst en telt niet mee in de gemiddelden.

De huidige weging heet v4 en staat bij elk gepubliceerd cijfer. Verandert de weging, dan krijgt die een nieuw versienummer en worden oude cijfers niet herrekend. Metingen met verschillende wegingen zijn daarom niet met elkaar te vergelijken, en de pagina met veranderingen laat ze ook niet naast elkaar zien.

Dat heeft één gevolg dat je op de site kunt zien: verandert de weging van de lektest of van de hostingcontrole, dan verdwijnt het totaalcijfer van elke site die nog met de oude weging gemeten is, tot ze opnieuw langs is geweest. Een cijfer uit een andere weging op dezelfde plek in de ranglijst zetten zou betekenen dat de helft van de lijst op een andere regel is gerangschikt dan de andere helft. Die sites houden hun eigen pagina, met beide metingen erop en de weging erbij — er is dus wél gemeten, er staat alleen geen totaalcijfer bij zolang de vergelijking niet klopt.

Hoe zwaar elk onderdeel telt

Binnen elke helft wegen de onderdelen niet even zwaar. Hieronder staat per onderdeel hoeveel strafpunten het maximaal kan kosten, en waarom. Op de pagina van een gemeten site staat dezelfde verdeling ingevuld met wat er daar gevonden is.

Twee regels gelden overal. Wat niet gemeten kon worden, telt niet mee — dat onderdeel valt weg en de rest wordt teruggerekend naar 100, zodat een site zonder mail de mailpunten niet cadeau krijgt en een site zonder cookies niet gestraft wordt voor iets wat er niet is. En één feit kost maar één keer punten: een tracker die vermomd op een eigen subdomein staat én vóór toestemming afgaat, telt bij het onderdeel waar dat het zwaarst weegt, niet bij allebei.

Lektest — 60% van het totaalcijfer

  • Vóór toestemmingmaximaal 30 van de 100 strafpunten

    Wat er al vertrok toen de pagina net geopend was: verzoeken naar derden, cookies, opslagsleutels en meetgegevens, voordat er ergens op geklikt was.

    Dit is waar deze lijst over gaat. Het is de enige waarneming die geen interpretatie nodig heeft — de bezoeker had nog niets kunnen kiezen, en het was er al. Het weegt het zwaarst, en het loopt door: elke extra partij kost opnieuw, zodat twintig trackers niet hetzelfde oplevert als vijf.

  • Toestemming genegeerdmaximaal 20 van de 100 strafpunten

    Wat er ná een klik op "weigeren" alsnog gebeurde: verzoeken, nieuwe cookies, metingen.

    Zwaarder per bevinding dan al het andere. Bij de rest is de vraag of er toestemming nodig was; hier is die vraag gesteld én beantwoord met "nee", en gebeurde het toch. Eén zo'n waarneming is meteen zo erg als dit onderdeel wordt.

  • De keuze zelfmaximaal 15 van de 100 strafpunten

    Was er een cookiemelding, en kon je daarin ook weigeren? Plus of er een toestemmingssignaal wordt meegestuurd naar de meetdiensten.

    Een melding zonder weigerknop is geen keuze. Het weegt lichter dan de twee onderdelen hierboven omdat er op dit punt nog niets vertrokken is: het gaat over de vraag, niet over het antwoord. Wat er ondertussen wél al weg was, telt hierboven mee.

  • Persoonsgegevens onderwegmaximaal 15 van de 100 strafpunten

    Gegevens die direct over één persoon gaan: ingetypte tekst die tijdens het typen al verstuurd wordt, e-mailadressen of BSN-patronen in uitgaand verkeer, volledige pagina-adressen in de Referer, en verkeer dat niet versleuteld is.

    Dit gaat over één persoon, niet over een bezoekersaantal. Een tracker weet dát er iemand was; dit onderdeel gaat over wat die iemand intypte. Het weegt lichter dan "vóór toestemming" omdat het zeldzamer is en vaker per ongeluk gebeurt — maar per bevinding kost het bijna evenveel.

  • Verhulde doorgiftemaximaal 10 van de 100 strafpunten

    Meetdiensten die op een adres van de site zelf draaien: een server-side tagcontainer op een eigen subdomein, of een naam waarvan de DNS-keten bij een trackingbedrijf eindigt.

    Hetzelfde lek, maar onzichtbaar — voor de bezoeker, voor een adblocker en voor elke andere meting op deze site. Het staat apart omdat de verhulling zelf iets toevoegt. Ging het ook nog eens vóór toestemming of ná weigeren, dan telt dát mee bij die onderdelen: één feit wordt niet twee keer beboet.

  • Cookies en opslagmaximaal 5 van de 100 strafpunten

    Bewaartermijn, Secure- en HttpOnly-vlaggen, SameSite, en wie de cookie gezet heeft.

    Reëel, maar afgeleid: een cookie van drie jaar is een lange bewaartermijn, geen doorgifte. Dit onderdeel woog voorheen even zwaar als een tracker vóór toestemming, en dat klopte niet — een ontbrekende Secure-vlag kost een bezoeker geen gegevens aan een derde partij.

  • Meeladen buiten de EERmaximaal 5 van de 100 strafpunten

    Externe partijen buiten de Europese Economische Ruimte, ingesloten video, externe lettertypen.

    Licht, en met opzet: de vraag onder welk recht een dienst valt wordt in de andere helft van het cijfer al uitgebreid gewogen. Hier twee keer vol meetellen zou hetzelfde bezwaar twee keer laten tellen.

Binnen een onderdeel telt elke bevinding mee, maar de eerste zwaarder dan de tiende: de tweede vondst telt voor de helft, de derde voor een derde, enzovoort. Dat is wat maakt dat twintig trackers vóór toestemming erger uitpakt dan vijf, zonder dat dat ene onderwerp met het hele cijfer aan de haal gaat. Het plafond van het onderdeel blijft altijd staan.

Een paar dingen worden wél gemeld maar nooit gescoord, omdat ze een bezoeker geen gegevens kosten: een ontbrekende security.txt, een ontbrekend Referrer-beleid, en de tellingen die alleen samenvatten wat elders al beoordeeld is. Cookieloze statistiek (Matomo, Plausible en verwanten) telt niet mee als overtreding — die valt onder de uitzondering van artikel 11.7a lid 3 Telecommunicatiewet.

Hostingcontrole — 40% van het totaalcijfer

  • Webservermaximaal 25 van de 100 strafpunten

    Waar de webserver staat en van welk bedrijf die is.

    Het zwaarst, want dit is de plek waar élke bezoeker langskomt en waar alles wat je op de site doet doorheen gaat. Land en eigenaar tellen allebei mee en de zwaarste van de twee wint: een server van een Amerikaans bedrijf in Frankfurt valt onder Amerikaans recht.

  • Overige dienstenmaximaal 25 van de 100 strafpunten

    Al het andere dat een leverancier verraadt: verificatierecords, de www-verwijzing en de tools die op de pagina zelf gevonden worden.

    Even zwaar als de webserver, maar het telt anders: hier is vijf Amerikaanse leveranciers wél erger dan één, want het zijn vijf losse partijen met elk hun eigen stukje. Een leverancier die hierboven al is meegeteld als host, naamserver of mailserver telt hier niet nog een keer.

  • Inkomende mailmaximaal 20 van de 100 strafpunten

    Naar welke servers de e-mail aan dit domein gaat.

    Zwaarder dan uitgaande mail, omdat inkomende post het gevoeligste is wat een organisatie binnenkrijgt: sollicitaties, klachten, medische vragen. Wie die servers beheert, kan daar in principe bij.

  • Naamserversmaximaal 15 van de 100 strafpunten

    Wie de naamservers beheert die het adres van deze site vertalen.

    Lichter dan de webserver, want hier gaat geen inhoud doorheen — wel het gegeven dát iemand dit adres opzoekt. Vijf naamservers bij dezelfde partij is hetzelfde probleem als één, dus dit onderdeel kijkt naar het gemiddelde en niet naar het aantal.

  • Uitgaande mailmaximaal 15 van de 100 strafpunten

    Welke partijen namens dit domein mogen versturen, volgens het SPF-record.

    Lichter, want dit gaat over post die de organisatie zelf opstelt en verstuurt. Wel per verzendende partij geteld en niet per IP-adres: één nieuwsbriefdienst met dertig adressen is één leverancier, geen dertig.

Elk onderdeel wordt op twee vragen tegelijk beoordeeld: in welk land staat het apparaat, en onder welk recht valt het bedrijf. De zwaarste van de twee telt. Landen binnen de EER en Zwitserland kosten niets, het Verenigd Koninkrijk telt voor een vijfde mee, en een onbekende herkomst voor de helft — die mag nooit gratis zijn, want dan zou een ontbrekende GeoIP-database ineens hoge cijfers uitdelen.

Wat hier uitdrukkelijk niet in zit: certificaten, TLS-versies, DNSSEC en DANE. Die worden gemeten en getoond, maar kosten geen punten. Dit cijfer beantwoordt één vraag — onder wiens recht valt dit domein — en een cipher suite zegt daar niets over. Ze door elkaar halen zou het cijfer onuitlegbaar maken, en dat is het enige wat een gepubliceerd cijfer niet mag zijn.

Hoe vaak

Elke site wordt elke twee tot vier maanden opnieuw gemeten — op dit moment ergens tussen de 60 en 120dagen na de vorige meting — ’s nachts, met een willekeurige spreiding zodat niet alles op dezelfde nacht valt. Bij elke regel staat de datum van de laatste meting. Is er sinds die datum iets veranderd, dan kan een nieuwe meting direct aangevraagd worden op de pagina van de site zelf.

Welke sites hier staan

Deze lijst gaat over Nederlandse organisaties, niet over .nl-adressen. Dat is niet hetzelfde: bol.com en ing.com horen bij Nederlandse bedrijven, en een .nl-adres kan net zo goed van een buitenlandse partij zijn. De lijst wordt met de hand samengesteld, per branche, en is verre van compleet — staat een site er niet op, dan zegt dat niets over die site.

Iedereen kan via de zoekpagina een site aandragen. Eindigt het adres op .nl, dan wordt die meteen gemeten. Bij elk ander adres kijkt er eerst iemand naar: of het om een Nederlandse organisatie gaat, kan geen meting vaststellen. Zolang dat niet is gebeurd wordt er niets gemeten en staat er hier niets over die organisatie — ook niet in de zoekresultaten. Het land waar de webserver staat telt daarbij uitdrukkelijk niet mee als bewijs: dat wordt hieronder juist beoordeeld, en het zegt niets over wie een organisatie is.

Andersom kan ook: wie niet gemeten wil worden, wordt uitgesloten, en komt er ook niet via de zoekpagina weer op.

Als er geen website op het adres staat

Niet elk webadres levert een website op. Er kan een foutmelding staan, de standaardpagina van een hostingpakket, of een parkeerpagina omdat de domeinnaam te koop staat. Zulke pagina’s laden geen trackers en zetten geen cookies: gemeten als website zouden ze moeiteloos het hoogste cijfer halen, en dat cijfer zou nergens over gaan.

Zulke adressen krijgen daarom geen cijfer en staan niet in de ranglijst. Stond er eerder wél een website, dan vervalt dat oude cijfer — het gaat over iets wat er niet meer is. Op de pagina van de site zelf staat wat er in plaats daarvan aangetroffen is en sinds wanneer. Werd het bezoek alleen geweigerd, of gaf de server een storing, dan blijft de laatste geslaagde meting met haar eigen datum staan: anders zou elke site zichzelf van deze lijst kunnen halen door de meting één keer tegen te houden.

Het bewijs

Bij elke meting hoort een opgeslagen rapport met alle verzoeken, cookies en bevindingen, en een schermafdruk die gemaakt is voordat er iets is aangeklikt. Die foto is het bewijs voor het oordeel over de cookiemelding: staat er geen melding op, dan was die er op dat moment niet. Beide zijn vanaf elke rij te openen.

Grenzen van de meting

Een geautomatiseerde meting ziet niet alles. Wat hier structureel misgaat:

  • Alleen de voorpagina wordt gemeten. Een schone homepage met een zware artikelpagina komt er te goed van af.
  • Sites die geautomatiseerde bezoeken blokkeren leveren een mislukte of onvolledige meting op. Die krijgen geen cijfer in plaats van een slecht cijfer.
  • Herkomst van servers komt uit een GeoIP-database. Die zit er soms naast, en een onbekende herkomst telt bewust niet als “dus Europees”.
  • Of er een geldige grondslag of verwerkersovereenkomst is, is van buitenaf onzichtbaar.

De eigenaar erop wijzen

Een organisatie hoort meestal als laatste dat er een cijfer over haar site rondgaat. Bij een cijfer D of lager staat daarom onderaan de pagina het adres waarop die organisatie zich volgens haar eigen gegevens laat bereiken, met een bericht dat al klaarstaat: wat er gemeten is, wanneer, en waar het rapport staat.

Dat bericht verstuurt jij, uit je eigen mailprogramma en onder je eigen naam — deze site mailt geen gemeten organisaties. Dat is geen technische beperking maar een keuze: een site die zelf ongevraagd post stuurt naar de organisaties die ze een cijfer geeft, is een andere site dan deze. De tekst staat klaar zodat er observaties in staan en geen verwijten, en je kunt er elk woord aan veranderen voordat je hem verstuurt.

De adressen komen uit de metingen zelf: de security.txt waarin een organisatie publiceert waar een melding heen moet, en het DMARC-record in haar DNS. Alleen adressen op het eigen domein tellen mee — het adres van een hostingpartij of een rapportageverwerker gaat over hun dienst, niet over deze site. Er wordt geen pagina afgezocht op e-mailadressen; dat zou adressen van medewerkers opleveren, en die horen hier niet.

Bezwaar, correctie en uitsluiting

Klopt een meting niet, dan hoort daar een bezwaar bij en geen discussie: laat weten wat er mis is en het wordt nagelopen. Blijkt de meting fout, dan wordt hij verwijderd.

Wil een beheerder helemaal niet meer geautomatiseerd bezocht worden, dan wordt dat gehonoreerd — en dat staat ook openbaar vermeld. Een uitsluiting laat de site niet stilletjes verdwijnen, want dat zou lezen als een verbetering die er niet is. Vanaf dat moment weigert ook de gewone scanner op snelle.tools dat adres.

De metingen komen van een browser met een eigen kenmerk in de user-agent, en verzoeken om uitsluiting via robots.txt worden overgenomen.

Alles kan ook gewoon per mail: security@privacyschandpaal.nl.

Wat er bewaard wordt

Alleen wat publiek waarneembaar is aan de gemeten site: de openbare DNS- en HTTP-antwoorden, de verzoeken die de pagina zelf doet, één schermafdruk per adres, en het contactadres dat de organisatie zelf publiceert. Van bezoekers van deze site wordt niets opgeslagen — geen IP-adressen, geen profielen, geen tracking. Er staat één cookie op deze site, en die verschijnt alleen als je zelf een donatie start, om die betaling bij terugkomst te kunnen herkennen. Meer zou hier ook wel erg raar staan; de privacyverklaring zegt het voluit.

Wie betaalt dit?

Ik, en verder niemand. Geen advertenties, geen sponsor, geen betalende partijen — elke meting draait op een server die ik zelf betaal. Een donatie verandert nooit een meting of een plek in de lijst; hij houdt alleen het meten zelf aan de gang.

☕ Steun het meten