Naar de inhoud

Veiligheid en privacy

Je vertrouwt ons iets toe: je naam, je voortgang, soms iets over je gezondheid. Hieronder staat wat we daarmee doen, en wat we bewust niet doen.

De korte versie, in vier punten.

  • Je gegevens staan in Frankfurt, op servers binnen de Europese Unie.
  • Alleen jij ziet jouw dossier. Dat is geen belofte, maar een regel in de database zelf, die weigert de gegevens van iemand anders uit te leveren, ook wanneer de website een fout zou maken.
  • Je wachtwoord kennen we niet. We kunnen het niet opzoeken en niet doorgeven; we kunnen je alleen helpen een nieuw in te stellen.
  • We volgen je niet. Geen advertentiecookies, geen meekijkende partijen, geen profiel dat ergens verhandeld wordt.

Wil je weten hoe dat werkt, of waarom je ons daarin zou geloven? Hieronder klapt het open.

Hoe weten jullie zo zeker dat niemand anders bij mijn gegevens kan?

Bij veel websites is de website zelf de portier: die bepaalt bij elke pagina wie wat te zien krijgt. Sluipt er ergens in die code een fout, dan ligt in één klap alles open. Dat is de manier waarop de meeste datalekken ontstaan.

Hier ligt de portier een laag dieper: in de database. Elke tabel heeft regels die zeggen geef een rij alleen terug aan degene van wie hij is. Zou de website per ongeluk álles opvragen, dan krijgt hij nog steeds alleen jouw rijen terug. De fout wordt dan een lege lijst in plaats van een lek. Op dit moment zijn dat 45 van zulke regels, verdeeld over alle 22 tabellen.

Gezondheidsgegevens gaan een stap verder. Die staan in een apart afgeschermd deel van de database waar geen enkele toegangsregel naartoe leidt: ook niet voor jou, ook niet voor een ingelogde beheerder via de gewone weg. Ze bestaan alleen als jij ze zelf hebt gedeeld, en ze zijn alleen te lezen langs de ene route die daar speciaal voor is.

Het beheergedeelte zit bovendien achter tweestapsverificatie: naast een wachtwoord is een code van zes cijfers nodig die elke dertig seconden verandert. Wie het wachtwoord van een beheerder zou raden, komt er zonder die code nog steeds niet in.

Waar staan mijn gegevens precies?
  • Je account, je inschrijvingen en je voortgang: bij Supabase, in Frankfurt. Dat is de database.
  • De website zelf: bij Vercel, ook in Frankfurt. Daar wordt niets van jou bewaard; die zet alleen de pagina's in elkaar.
  • Beeld en cursusmateriaal: eveneens Frankfurt, bij dezelfde partij als de database.
  • Betalingen: bij Mollie in Amsterdam. Je kaart- of rekeningnummer komt nooit onze kant op; wij zien alleen dát er betaald is, het bedrag, en een verwijzing.
  • E-mail: via Resend, dat de bevestigings- en herstelmails verstuurt.

Eén uitzondering, en die noemen we liever zelf dan dat je hem ergens moet opzoeken. Maakt je begeleider een verslag ter voorbereiding van een gesprek, dan gaat een deel van je dossier naar Anthropic, in de Verenigde Staten. Je naam, e-mailadres, telefoonnummer, woonplaats en geboortedatum gaan daarbij niet mee. Wel je leeftijd, je doelen, je voortgang en de aantekeningen. Iets over je gezondheid gaat alleen mee als jij daar toestemming voor gaf én je begeleider het per keer aanvinkt.

Dat is geen anonimiteit, en we doen ook niet alsof: een uitgebreid profiel kan indirect nog steeds naar één persoon leiden. Daarom staat het hier, en in de privacyverklaring.

Wat gebeurt er met mijn wachtwoord?

Je wachtwoord wordt niet opgeslagen. Wat bewaard wordt is een onleesbare afdruk ervan, gemaakt met een berekening die niet terug te draaien is. Bij het inloggen wordt niet gekeken of je wachtwoord klopt, maar of de afdruk ervan klopt.

Het gevolg is misschien onhandig maar wel geruststellend: wij kunnen je wachtwoord niet opzoeken. Vraag je ernaar, dan is het eerlijke antwoord dat we het echt niet weten. We kunnen alleen een herstelmail sturen naar het adres dat bij je account hoort.

Je kunt zelf tweestapsverificatie aanzetten in je eigen omgeving. Voor beheerders is dat geen keuze maar een eis: zonder tweede stap komt niemand bij het beheer.

Waarmee is deze site gebouwd?

Van voor naar achter, zonder jargon:

  • De pagina's worden op de server in elkaar gezet en kant-en-klaar naar je browser gestuurd. Dat is snel, en het werkt ook wanneer er onderweg iets misgaat met de opmaak of de scripts.
  • De opslag is een gewone database (PostgreSQL) met inloggen en bestandsopslag eromheen, geleverd door Supabase.
  • De hosting loopt via Vercel, met de regio vastgezet op Frankfurt zodat er niets buiten de EU terechtkomt.
  • Betalen en mailen besteden we uit aan partijen die daar goed in zijn, Mollie en Resend, in plaats van dat zelf te bouwen.

De teksten en foto's die je hier leest staan niet vastgemetseld in de code. Ze staan in de database en zijn aan te passen via een eigen editor. Een wijziging is eerst een concept dat alleen de beheerder ziet; pas bij publiceren komt hij online, en elke publicatie belandt in een logboek dat niet te wissen is.

Verder krijgt je browser van ons een lijst mee van de plekken waar deze pagina iets vandaan mag halen. Staat een adres niet op die lijst, dan weigert je browser het, ook als iemand het er via een omweg tussen zou weten te krijgen.

Hoe weten jullie dat een wijziging niets stukmaakt?

Omdat er niets online gaat voordat een reeks controles automatisch is doorlopen. Die controles kijken niet of de site er mooi uitziet, maar of hij zich gedraagt:

  • 84 controles op losse onderdelen: rekent de prijs goed, wordt een te late annulering geweigerd.
  • 271 controles die juist proberen wat niet mag: klant A die het dossier van klant B opvraagt, iemand die zichzelf beheerder maakt, betaalde content bekijken zonder betaling, een concepttekst die uitlekt voordat hij gepubliceerd is. Elk van die pogingen hóórt te mislukken, en de controle valt om zodra er ééntje slaagt.
  • 212 controles die de site in twee echte browsers doorlopen, op een laptop en op een telefoon, van begin tot eind: inschrijven, inloggen, boeken, annuleren.

Samen zijn dat ruim vierhonderd controles, en ze draaien bij elke wijziging opnieuw. Springt er één op rood, dan gaat de wijziging niet door. Niet "we kijken er nog naar": hij komt er eenvoudigweg niet in.

Wat is er bewust nog niet af?

Liever eerlijk dan glad:

  • Online betalen kan nog niet. Schrijf je je in, dan wordt dat een aanvraag en nemen we zelf contact met je op over de betaling.
  • De juridische teksten zijn concept. Ze zijn zorgvuldig opgesteld, maar nog niet door een jurist nagekeken. Dat staat er ook bij, op de pagina's zelf.
  • Nieuwsbrieven versturen we nog niet. Eerst willen we de toestemmingsadministratie sluitend hebben; daarna pas de eerste mailing.

Zodra hier iets in verandert, verandert deze pagina mee.