Klarfile

Er wordt niets geüpload. Zo gaat u dat na.

Elk online gereedschap belooft vertrouwelijkheid. Hier hoeft u de belofte niet te geloven: ze is in dertig seconden na te gaan, en deze pagina legt uit hoe.

Drie controles, in dertig seconden

Trek de netwerkverbinding eruit. Laad een stuk gereedschap, zet dan wifi uit of trek de kabel eruit. Sleep een document erin, voeg samen, draai, nummer, bewaar, wissel van gereedschap. Alles blijft werken, want alles gebeurde al op uw machine — ook als u de verbinding verbreekt vóór u iets hebt binnengesleept.

Kijk in het tabblad «Netwerk». Open de ontwikkelaarsgereedschappen van uw browser (F12), tabblad Netwerk, en sleep er een bestand van honderd pagina's in, herschik het, zet er een watermerk op. Er gaat niets uit: geen verzoek, geen upload op de achtergrond, geen telemetrie. Bewaar, en u ziet er precies één verschijnen, /compte?p=100&f=pdf: de teller van de startpagina, die een getal krijgt en de familie gereedschap waar het vandaan komt. Hij weegt één regel, en het is de enige van de hele site. Wilt u de ontwikkelaarsgereedschappen liever niet openen, dan draagt elke gereedschapspagina onderaan een snelkoppeling naar diezelfde lijst — «Wat dit tabblad aan het netwerk gevraagd heeft» — die bijwerkt terwijl u werkt. Die snelkoppeling schrijft de pagina, dus wij; wat telt is de tabel van uw browser, en dat zeggen we daar ook.

Lees het beveiligingsbeleid voor inhoud. Het staat in de bron van elke pagina, en uw browser dwingt het af. connect-src 'self' betekent dat de pagina geen verbinding kan openen met welk ander domein dan ook: geen letterleverancier, geen CDN, geen meetscript. Het is geen beleid, het is een regel die de browser toepast.

Losgekoppeld werkt de site nog steeds — en dit heeft het gekost

De eerste controle hierboven had een blinde vlek, en die hoort er eerst uit: een gereedschapspagina opent zonder zijn machinerie. De twee bibliotheken die het werk doen wegen driekwart van de site en dienen nergens toe zolang er niets is binnengesleept, dus werden ze pas bij het eerste bestand opgehaald. Wie het netwerk vóór het slepen verbrak, trof dood gereedschap aan, en mocht met recht denken ons betrapt te hebben.

Een service worker zet die machinerie nu opzij zodra de pagina opent, samen met de vijftig gereedschapspagina's van uw taal. U mag meteen bij binnenkomst loskoppelen en daarna samenvoegen, zwartlakken, verkleinen en van het ene gereedschap naar het andere gaan. De site past in uw browser: dat is de demonstratie die een dienst die uploadt niet kan nadoen, want die heeft zijn server nodig om te werken.

Blijft over eerlijk te zeggen wat dat onderdeel is. Een service worker is een programma dat zich tussen de pagina en het netwerk nestelt: precies de plek vanwaar iemand uw documenten naar buiten zou halen als hij dat zou willen. Dus: wat de onze doet, en wat hij niet doet.

  • Hij opent geen enkele verbinding. Hij vermijdt ze: zijn werk is antwoorden met wat hij al heeft, zodat er niets gevraagd hoeft te worden. Hij praat met geen enkel ander domein — het beveiligingsbeleid zou het hem sowieso verbieden.
  • Er gaat geen document door hem heen. Uw bestanden raken het netwerk nooit; ze gaan van uw schijf naar het geheugen van het tabblad. Wat hij bewaart zijn de pagina's en de code van deze site, verder niets.
  • Hij raakt de teller niet aan, en vooral: hij speelt hem niet opnieuw af. Een service worker kan een verzending vasthouden en herhalen zodra het netwerk terug is. Dat zou betekenen dat er een gedateerd spoor van uw werk in uw browser bewaard blijft, wachtend om naar ons verstuurd te worden. Zonder verbinding telt de teller niet, en dat is precies goed.
  • Hij leegt zichzelf volledig bij elke nieuwe versie van de site, en hij levert nooit de pagina van gisteren zolang het netwerk antwoordt: een verlopen pagina zijn verlopen beloften.
  • Hij is te lezen. Het is het bestand /sw.js, in de wortel van het domein: tweehonderd regels met commentaar, die in een tabblad opengaan. U hoeft deze alinea niet te geloven.

Het enige verzoek, en wat het draagt

Na een export, en alleen dan, stuurt de pagina één verzoek naar dit domein. Het draagt twee dingen: een getal en de familie gereedschap waar het vandaan komt, pdf, image, video of archive. Geen byte van uw document, geen bestandsnaam, geen kenmerk, geen cookie, en ook niet het gereedschap zelf: een familie telt er een stuk of twaalf.

Het serverlogboek voor dat punt schrijft drie dingen: een datum, een familie en dat getal. Het zegt dus dat op een bepaalde dag iemand aan een afbeelding heeft gewerkt en niet aan een pdf, één ding meer dan gisteren, aan niemand gekoppeld: geen adres, geen sessie, geen aaneenschakeling. Het formaat staat in het repository, en een browser die vraagt niet gevolgd te worden stuurt helemaal niets. Wij hadden bezoeken kunnen tellen zoals iedereen; een meetscript zou de pagina, het adres, het apparaat en het pad gezien hebben, en niets daarvan is nodig om «zoveel pagina's verwerkt» te tonen.

Wat dat betekent voor de AVG

Uw documenten worden nooit door ons verwerkt, want ze bereiken ons nooit. Er is geen verwerker te noemen, geen doorgifte buiten de Europese Unie te melden, geen bewaartermijn vast te stellen, en niets waarvan u iemand kunt vragen het te wissen.

Geen cookie, geen tracker, geen derde partij, dus ook geen toestemmingsbanner, want er valt niets toe te stemmen. Wat een webserver noodzakelijkerwijs ziet wanneer u een pagina laadt (een ip-adres, een datum, de gevraagde pagina) blijft hier waar zoals overal: zo werkt het web, en het gaat over de pagina, nooit over uw documenten.

Wat wij niet garanderen

Deze site maakt uw machine niet veilig, en beweert dat ook niet.

  • Gereedschap is geen audit. Een pdf inspecteren zegt wat wij in zijn bytes hebben kunnen lezen, niet dat het document ongevaarlijk is.
  • Een watermerk is geen beveiliging, en een pdf bijsnijden wist niet wat uitsteekt. Elk stuk gereedschap zegt dat op zijn eigen pagina.
  • Zwartlakken plat de pagina tot een afbeelding: wat bedekt is verdwijnt, maar de pagina verliest haar selecteerbare tekst.
  • Alles gebeurt in het geheugen van het tabblad. Voorbij honderd megabyte per bestand is het het tabblad dat het begeeft.
  • Hier ondertekenen is geen elektronische handtekening in de zin van eIDAS: niets bevestigt uw identiteit of verzegelt het document.

Het werkt zonder ons

De hele site is een map met statische bestanden. Hij kan op een intranet of op elke kleine webserver gezet worden en werkt losgekoppeld: dat pakket is wat wij verkopen, voor organisaties die liever van geen enkele externe site afhankelijk zijn.

Wat meteen het eenvoudigste antwoord is op «en als deze site verdwijnt?»: niets van wat u hier gedaan hebt hing ervan af dat hij overeind bleef.