Zo zijn je tools beschermd

Van open tot alleen genodigden: wie er per toegangsniveau bij een tool kan, waar de data heen gaat en welke bescherming altijd aan staat.

Laatst bijgewerkt

lichter → zwaarder

tool xyzTool XYZ
geen deur
elders

Vindbaar via Google

Dit doet Toolcrow nooit.

Iedereen die zoekt.

  • Veel hostingdiensten laten zoekmachines je pagina opnemen.
  • Dan kan iedereen je tool vinden en helemaal gebruiken.
+Onder de motorkap
  • Elk antwoord van het adres van een tool stuurt de HTTP-header X-Robots-Tag: noindex, nofollow mee: de HTML, het wachtwoord- en privéscherm, elk bestand en de doorverwijzing ernaartoe.
  • Het is een header en niet alleen een <meta>-tag, dus hij geldt ook voor bestanden die geen HTML zijn en voor pagina's die je code nooit laden.
  • robots.txt blokkeert de adressen van tools bewust niet. Een geblokkeerd adres kan nog steeds in Google komen via links van elders; een bezocht adres met noindex niet.
  • In de sitemap staan alleen de eigen pagina's van Toolcrow. De landingspagina van een free tool op /tools mag in Google; de tool erin stuurt nog steeds noindex.
?geen linkde linkniet te vindenTool XYZ
licht
niveau 1

Open

Iedereen aan wie je de link geeft.

  • Het adres is lang en willekeurig, dus niemand komt er per ongeluk op.
  • Zoekmachines nemen het niet op.
  • Met een deelknop en een linkvoorbeeld geef je hem makkelijk door.
+Onder de motorkap
  • Elke tool staat op <label>.toolcrow.live. Het label is 16 bytes uit een cryptografische generator, geschreven als 26 base32-tekens: 2^128 mogelijkheden, dus raden is geen realistische aanval.
  • Deellinks op toolcrow.app hebben een slug van 22 base64url-tekens (ook 128 bits) en sturen met een 307-redirect door naar het adres van de tool.
  • Open Graph-tags (naam, omschrijving) en het deelpaneel komen er alleen bij Open tools bij, dus een linkvoorbeeld verraadt nooit de naam van een afgesloten tool.
  • Het adres van een tool antwoordt alleen op zijn eigen hostnaam.
Tool XYZwachtwoord
middel
niveau 2

Wachtwoord

Mensen met de link en het wachtwoord.

  • Zonder wachtwoord stuurt onze server alleen het wachtwoordscherm. Je code verlaat de server niet.
  • Na het goede wachtwoord krijgt die browser een pas voor 12 uur.
  • Verander je het wachtwoord, dan werkt geen enkele pas meer.
+Onder de motorkap
  • De poort draait op de server, nog voordat je code uit de opslag wordt gehaald. Zonder geldige pas is het antwoord alleen het wachtwoordscherm; de andere bestanden van de tool geven 404.
  • Het wachtwoord wordt met bcrypt (cost 10) gecontroleerd tegen een hash in een aparte tabel met row-level security, die alleen de server kan lezen. Wachtwoorden zijn 8 tot 200 tekens.
  • Een tweede kopie staat versleuteld met AES-256-GCM, zodat je je wachtwoord terug kunt zien en in een uitnodiging kunt meesturen. Hij wordt alleen op de server ontsleuteld.
  • Het formulier gaat naar het eigen adres van de tool. Klopt het, dan zet de server een pas: een HMAC-SHA256-handtekening die vastzit aan de tool en de huidige wachtwoord-hash, als cookie met HttpOnly; Secure; SameSite=Lax, 12 uur geldig en alleen op dat ene adres.
  • Omdat de hash in de handtekening zit, maakt een nieuw wachtwoord alle oude passen in één keer ongeldig.
  • Foute pogingen worden per netwerk en per tool geteld. Te veel en de deur gaat een tijdje op slot.
  • Jij, de maker, wordt herkend aan je eigen ondertekende eigenaarspas (zie Privé) en hoeft het wachtwoord niet in te typen.
Tool XYZjij, ingelogdverder niemand
zwaar
niveau 3

Privé

Alleen jij, ingelogd bij Toolcrow.

  • Elke nieuwe tool begint hier.
  • Iedereen anders ziet een scherm "deze tool is privé".
  • Je Toolcrow-login komt nooit op het eigen adres van de tool.
+Onder de motorkap
  • Je Toolcrow-sessie staat op toolcrow.app en kan niet gelezen worden door toolcrow.live, een andere site. Daarom is er een overdracht nodig.
  • Open je je tool vanuit Toolcrow, dan wordt daar je sessie gecontroleerd en krijgt de doorverwijzing een eenmalig token mee: je gebruikers-id, 60 seconden geldig en een HMAC-SHA256-handtekening.
  • Het adres van de tool controleert het token, ruilt het om voor een eigenaarscookie met HttpOnly; Secure en een eigen ondertekende geldigheid van 12 uur, en stuurt door met een 303-redirect, zodat het token uit de adresbalk en de geschiedenis verdwijnt.
  • Bij elk verzoek controleert de server opnieuw of de tool van jou is, of van de workspace waar je bij hoort.
  • Toolcrow zet nooit account-cookies op toolcrow.live, dus code in een tool kan niet bij je login.
gastenlijstanna@acmetom@acmeTool XYZanna?
zwaarst
niveau 4

Alleen genodigden

binnenkort

Alleen mensen op je gastenlijst, elk met een eigen login.

  • Je voegt mensen toe op e-mailadres. Ze loggen in met hun eigen account.
  • Toolcrow controleert de gastenlijst bij elk bezoek.
  • Haal je iemand van de lijst, dan kan die er niet meer in.

Nu stuurt delen per e-mail alleen een uitnodiging (met het wachtwoord, bij een tool met wachtwoord). Dat geeft op zichzelf nog geen toegang.

+Onder de motorkap
  • Gebouwd als portals: je zet tools bij elkaar en nodigt mensen daarvoor uit. Elke gast krijgt een account met de rol "eindgebruiker", door de server in zijn ondertekende inlogtoken gezet, dus hij kan die niet veranderen.
  • Eindgebruikers kunnen niet bij de pagina's en API's voor makers en beheer, en hebben geen eigen workspace.
  • Een tool openen werkt zoals de overdracht voor de eigenaar: een ondertekend token van 60 seconden, omgeruild voor een cookie van 12 uur. Het lidmaatschap wordt bij elk verzoek opnieuw gecontroleerd.
  • Toegang hangt aan het account, niet aan een e-mailadres dat in een formulier is ingetypt.
  • Gebouwd, nog niet aangezet.

Zijstap: waar gaat de data heen?

Is iemand eenmaal door de deur, dan kies je per tool wat er gebeurt met wat hij invult. De deur bepaalt nog steeds wie erbij kan: bij een tool met wachtwoord komen alleen mensen met het wachtwoord bij de data.

Tool XYZnotitiesblijft hier

Alleen op het apparaat van de bezoeker

Bewaard in de eigen browser van die bezoeker. Niemand anders ziet het, jij ook niet.

inzendingSubmissionsniet teruglezen

Naar jou gestuurd

Inzendingen komen op je pagina Submissions of in je eigen Google Sheet. Bezoekers kunnen ze niet teruglezen, tenzij je "Visitors can read submissions" aanzet.

één lijst voor allen

Gedeeld met iedereen binnen

Iedereen die door de deur kwam, leest en schrijft dezelfde data. Handig voor een teamlijst, niet voor iets privés.

+Onder de motorkap
  • Op het apparaat: localStorage en sessionStorage worden vervangen door een laag op IndexedDB. Browsers houden opslag per origin gescheiden, en elke tool heeft een eigen origin, dus tools kunnen elkaars data niet lezen.
  • Naar jou: Tooldrop.opslaan() voegt een rij toe. Rijen teruglezen met Tooldrop.lezen() wordt geweigerd, tenzij je het aanzette. Gedeeld: window.storage met shared: true leest en schrijft sleutels.
  • Gedeelde en verstuurde data gaan via één route op de server. De tool praat nooit rechtstreeks met de database en heeft nooit een databasesleutel.
  • Elke oproep heeft een datapas die de server pas na de deur uitgeeft: het id van de tool, 12 uur geldig en een HMAC-SHA256-handtekening over de huidige toegang van de tool (open, wachtwoord-hash of privé). Elke oproep controleert hem opnieuw tegen de database, dus een nieuw wachtwoord, privé maken, uitzetten of blokkeren maakt elke pas ongeldig.
  • De route accepteert alleen oproepen van tool-adressen op toolcrow.live (CORS-allowlist).
  • De server bepaalt waar de data komt: in je Google Sheet als je er een koos, anders in de eigen tabellen van Toolcrow. Die hebben row-level security zonder publieke regels, dus alleen de server kan erbij. Google-tokens blijven versleuteld op de server.
  • Grenzen per tool: 1.000 data-oproepen per dag, 5.000 inzendingen, 1.000 gedeelde sleutels, 50.000 tekens per waarde.

Altijd aan, op elk niveau

Dit zet je niet zelf aan. Het zit bij elke tool.

Nooit in zoekmachines

Niet te vinden in Google of waar dan ook, ook Open tools niet.

Een adres dat niemand kan raden

Lang en willekeurig, dus de enige weg naar binnen is de link die jij deelt.

Elke tool in een eigen ruimte

Zijn opslag en cookies kunnen niet bij je andere tools of je Toolcrow-account.

Geheime sleutels blijven op onze server

AI-sleutels en je Google-koppeling gaan nooit naar de tool.

Niet over te nemen door andere sites

Andere websites kunnen je tool niet in hun eigen pagina tonen.

Een tool kan offline

Je kunt een tool zelf uitzetten. Wordt er een gemeld voor misbruik, dan kan Toolcrow hem blokkeren.

Mis je iets of is iets onduidelijk? Mail naar hello@toolcrow.app. We antwoorden persoonlijk.