Naar hoofdinhoud springen

Wat de code daadwerkelijk doet

Twintig mechanismen gecontroleerd tegen de code op 16 september 2026. Elk in één zin.

Gecontroleerd tegen de code op 16-09-2026

  1. Elke databasequery verloopt via een Prisma-extensie die deze koppelt aan de organisatie van de aanvraag. Een query zonder organisatiecontext mislukt in plaats van rijen te retourneren.

  2. TOTP-seeds en tokens van externe leveranciers worden versleuteld opgeslagen met AES-256-GCM, met een sleutelbos die sleutelrotatie mogelijk maakt zonder de toegang tot bestaande gegevens te verliezen.

  3. Elke HTML-respons krijgt een Content-Security-Policy met een unieke nonce per aanvraag, en een inline script zonder die nonce wordt niet uitgevoerd.

  4. Elke statuswijzigende aanroep met een sessie van een teamlid moet een CSRF-token bevatten dat overeenkomt met de cookie, en deze handhaving kan in productie niet worden uitgeschakeld.

  5. Een link naar een goedkeuringsbewijs is ondertekend met HMAC-SHA256. De handtekening wordt geverifieerd vóór elke database-uitlezing, en elke fout retourneert dezelfde 404-pagina.

    Een deellink is een willekeurig token van 32 bytes waarvan alleen de SHA-256-hash wordt opgeslagen, met een vervaldatum, een optioneel wachtwoord en directe intrekking. Een ingetrokken, verlopen of onbekende link retourneert dezelfde 404-pagina.

  6. Elk geüpload bestand wordt met ClamAV gescand op een privé-VM binnen de VPC voordat er een preview van wordt gemaakt, en een bestand zonder een veilig resultaat wordt vastgehouden en niet geserveerd.

    Bestanden groter dan 2 GiB worden vastgehouden en niet gescand. Een vastgehouden bestand wordt niet geleverd.

  7. Een klant gaat naar het portaal zonder account, via een code, link, telefoon of e-mail; alleen een HMAC van de code of het token wordt opgeslagen, een toegang verloopt (standaard na 30 dagen) en intrekking verbreekt de verbinding met elk apparaat binnen twee minuten.

  8. Het activiteitslogboek is in de applicatie 'append-only': geen enkel codepad werkt een auditrij bij of verwijdert deze, en een CI-gate faalt bij elke poging om er een toe te voegen.

  9. Elk API-pad is in snelheid beperkt per gebruiker of IP-adres van de klant via een gedeelde Redis-teller over alle instanties. Wanneer Redis niet beschikbaar is, daalt de limiet naar een derde per instantie in plaats van volledig open te gaan.

  10. De sessie is een ondertekende JWT-cookie (HS256) met HttpOnly, Secure en SameSite=Lax, verloopt na twee uur inactiviteit en kan op alle apparaten tegelijk worden ingetrokken. Wachtwoorden worden opgeslagen als scrypt-hashes en MFA-herstelcodes worden alleen als HMAC's opgeslagen.

  11. Het portaal, deellinks, bewijzen, uitnodigingsacceptaties en de pagina's voor het voltooien van de registratie en het herstellen van het wachtwoord bevatten noindex, en robots.txt weigert toegang tot /api/, /admin, /app en /coupons.

  12. Een workspace-eigenaar exporteert de gegevens en verwijdert de workspace of diens eigen account zonder dit aan ons te hoeven vragen. De verwijdering blokkeert de toegang onmiddellijk, en permanente verwijdering wordt automatisch na 30 dagen uitgevoerd, het aantal dagen dat is vastgelegd in de voorwaarden, het privacybeleid en de DPA.

  13. Secrets worden tijdens de implementatie geladen vanuit Secret Manager, gevalideerd bij het opstarten (minimale lengte, tijdelijke aanduidingen worden geweigerd, de coderingssleutel moet bestaan uit 32 willekeurige bytes) en weggelaten uit logboeken en foutrapporten.

  14. Geplande aanroepen worden geverifieerd met een HMAC-SHA256-handtekening binnen een tijdsbestek van vijf minuten of een Google OIDC-token, en een statisch bearer-secret wordt in productie geweigerd.

  15. Elk uitgaand verzoek naar een door de gebruiker opgegeven adres (Google Drive-imports, webhooks) wordt gecontroleerd op basis van privé-adresbereiken, ook na omleidingen en op het moment van verbinding.

  16. De body van een API-verzoek is beperkt tot maximaal 1 MiB en wordt gecontroleerd aan de hand van een strikt schema dat onbekende velden weigert voordat de code erbij kan.

  17. Het bestandstype wordt bepaald op basis van de bytes zelf in plaats van de declaratie van de browser, en een bestand dat de limiet van het pakket of de limiet per bestand overschrijdt, wordt al vóór het uploaden geweigerd.

  18. Elk objectpad wordt gecontroleerd op het voorvoegsel van de organisatie vóór het ondertekenen, lezen of verwijderen, en bestanden worden aangeboden via tijdsbeperkte, ondertekende URL's (6 uur voor weergave, 5 minuten voor downloaden).

  19. AI-voorstellen worden opgeslagen als voorstellen en pas toegepast nadat een persoon ze goedkeurt, en AI-code mag geen systeembereik openen over klantgegevens; een CI-gate dwingt dit af.

  20. Elke deploy doorloopt eerst de volledige testsuite met dekking, de code-gates en npm audit op high-niveau; een productie-deploy gaat daarnaast door een canary met readiness-probes.

Waar de servers draaien

De servers, database en bestanden van Tasked bevinden zich in de Google Cloud-regio europe-west1 (België).

Subverwerkers (e-mail, SMS, betalingen, foutrapportage, AI-providers) en Google Analytics, dat het gebruik van de site en de app meet, verwerken gegevens buiten die regio.

Waar je zelf verantwoordelijk voor bent

  • Portaallinks, deellinks en ontvangstbewijslinks zijn bearer-credentials: wie ze heeft, komt binnen.
  • MFA is opt-in per account, niet verplicht voor elk account.
  • Bij een vastgehouden bestand moet een workspace-teamlid actie ondernemen.
  • Verwijderde gegevens kunnen gedurende 30 dagen worden hersteld en zijn daarna definitief weg.

Starten zonder creditcard

Veertien dagen, alles ingeschakeld. Open een workspace, vertel de AI hoe je werkt en nodig een klant uit om goed te keuren.

Een vraag? Schrijf ons

We antwoorden direct vanaf de site als dat kan, en een medewerker volgt het op als dat nodig is. Geen mailinglijst.