Inleiding
Een HTTP-cookie (ook wel webcookie, internetcookie, browsercookie of gewoon cookie genoemd) is een klein stukje data dat door een website wordt verzonden en door de webbrowser van de gebruiker op de computer van de gebruiker wordt opgeslagen. Cookies zijn ontworpen als een betrouwbaar mechanisme voor websites om stateful informatie te onthouden (zoals artikelen die aan het winkelwagentje zijn toegevoegd).
Voor sommige cookies (tracking cookies) moet toestemming worden gevraagd. Formdesk gebruikt dergelijke cookies niet.
De hiernavolgende beschrijving van de cookies is met name bedoeld voor iedereen die geïnteresseerd is in beveiligingsmaatregelen die Formdesk heeft genomen zoals pentesters en ethische hackers en daarom technisch van aard.
Terminologie
Sessiecookie
Een sessiecookie bestaat alleen in het tijdelijke geheugen terwijl de gebruiker door de website navigeert. Webbrowsers verwijderen sessiecookies normaal gesproken wanneer de gebruiker de browser sluit. In tegenstelling tot andere cookies hebben sessiecookies geen vervaldatum, waardoor de browser weet dat ze als sessiecookies behandeld moeten worden.
Permanente cookie
In plaats van te vervallen wanneer de webbrowser wordt gesloten, zoals bij sessiecookies, vervalt een permanente cookie op een specifieke datum of na een specifieke tijdsduur. Dit betekent dat gedurende de gehele levensduur van de cookie (die zo lang of zo kort kan zijn als de makers willen), de informatie ervan elke keer dat de gebruiker de website bezoekt, naar de server wordt verzonden.
Beveiligde cookie
Een beveiligde cookie kan alleen worden verzonden via een versleutelde verbinding (d.w.z. HTTPS). Ze kunnen niet worden verzonden via onversleutelde verbindingen (d.w.z. HTTP). Dit maakt de cookie minder vatbaar voor diefstal van cookies via afluisteren. Een cookie wordt beveiligd door de beveiligde vlag aan de cookie toe te voegen.
Http-only cookie
Een http-only cookie is niet toegankelijk voor client-side API’s, zoals Javascript. Deze beperking elimineert de dreiging van diefstal van cookies via cross-site scripting (XSS). De cookie blijft echter kwetsbaar voor cross-site tracing (XST) en cross-site request forgery (XSRF)-aanvallen. Een cookie krijgt deze eigenschap door de HttpOnly-vlag aan de cookie toe te voegen.
Side-site cookie
In 2016 introduceerde Google Chrome een nieuw type cookie met het kenmerk SameSite. Het kenmerk SameSite kan de waarde Strict, Lax of None hebben.
SameSite=Strict: browsers mogen deze cookies alleen verzenden met verzoeken die afkomstig zijn van hetzelfde domein/dezelfde site als het doeldomein. Dit zou XSRF-aanvallen effectief beperken.
SameSite=Lax: beperkt de oorspronkelijke site niet, maar zorgt ervoor dat het doeldomein hetzelfde is als het cookiedomein, waardoor cookies van derden (cross-site) effectief worden geblokkeerd.
SameSite=None: staat cookies van derden (cross-site) toe.
Formdesk-cookies
session.backend.secure / session.frontend.secure
Slaat de sessiegegevens van de ingelogde gebruiker op in sleutel-waardeparen. De sidn-querystringparameterwaarde is de sleutel binnen deze informatie. De *.backend.* cookienaam wordt gebruikt voor de supervisor en gebruikers. De *.frontend.* cookienaam wordt gebruikt voor de bezoekers van inlogformulieren.
SameSite=Strict kan niet worden gebruikt omdat bij omleidingen van externe providers zoals OIDC-providers, ondertekeningsproviders en betalingsproviders de cookies met de Strict-waarde niet worden meegestuurd met de eerste omleidingsaanvraag.
Waarde: Versleuteld
Domein: Wanneer een Formdesk-domein het bovenliggende formdesk.com-domein is; Wanneer een klantdomein: het exacte klantdomein
Pad: Klantmap met formulieren (bijv. /demo)
Verloopt: Sessie
HttpOnly: Ja
Beveiligd: Ja
SameSite: Lax
backend.* / frontend.*
* = de SIDN-querystringparameterwaarde
Deze cookie bevat geen gebruikersgevoelige applicatie-informatie zoals de formulier-id, de item-id, de sorteervolgorde van formulieren of resultaten, zoektermen. De cookie wordt gebruikt om vervuiling van querystringparameters (browsergeschiedenis) te voorkomen. De cookie is niet HttpOnly en kan niet worden versleuteld omdat de inhoud client-side in een script wordt gebruikt en gemanipuleerd.
Waarde: Niet versleuteld
Domein: Huidig domein
Pad: Klantmap met formulieren (bijv. /demo)
Verloopt: Sessie
HttpOnly: Nee
Beveiligd: Ja
Zelfde site: Strikt
Instellingen
Deze cookie slaat permanente instellingen op die specifiek zijn voor supervisors en gebruikers, zoals de labelfiltering op de samenvattingspagina van het formulier. Het doel is hetzelfde als dat van de backend.*-cookie, behalve dat dit een permanente cookie is. De opgeslagen informatie is niet-gevoelig en wordt ook gebruikt in clientscripts. Daarom is de cookie niet HttpOnly en is de inhoud niet versleuteld.
Waarde: Niet versleuteld
Domein: Huidig domein
Pad: Klantmap met formulieren (bijv. /demo)
Verloopt: Eén jaar
HttpOnly: Nee
Beveiligd: Ja
SameSite: Strikt
Rvtoken.*
* = de waarde van de SIDN-querystringparameter
Dit is een Anti-Forgery Request Validation-cookie (https://owasp.org/www-community/attacks/csrf). SameSite=Strict kan niet worden gebruikt omdat bij omleidingen van OIDC-providers de cookies met de waarde Strict niet met de eerste omleidingsaanvraag worden meegestuurd.
Waarde: Versleuteld
Domein: Huidig domein
Pad: Klantmap met formulieren (bijv. /demo)
Vervaldatum: Sessie
HttpOnly: Ja
Beveiligd: Ja
ZelfdeSite: Lax
Open.sidn
Deze cookie is specifiek voor de inlogsessie van een supervisor of gebruiker om eenvoudig de niet-gevoelige SIDN-querystringparameterwaarde door te geven bij het openen van een formulier vanuit het account.
Waarde: Versleuteld
Domein: Huidig domein
Pad: Klantmap met formulieren (bijv. /demo)
Vervaldatum: Eén jaar
HttpOnly: Ja
Beveiligd: Ja
ZelfdeSite: Lax
*.store
* = Account-ID
Deze cookie is van toepassing op formulieren die gebruikmaken van de functie ‘Invoer onthouden’. Wanneer deze functie wordt gebruikt, slaat Formdesk het antwoord op een of meerdere vragen op in deze cookie. De volgende keer dat de bezoeker een formulier opent vanuit hetzelfde account, kan Formdesk vragen vooraf invullen. Deze functionaliteit en dus ook deze cookie zijn verouderd. De functionaliteit kan niet meer worden geactiveerd, maar formulieren waarop de functionaliteit in het verleden was geactiveerd, blijven wel werken.
Waarde: Versleuteld
Domein: Huidig domein
Pad: Klantmap met formulieren (bijv. /demo)
Verloopt: Eén jaar
HttpOnly: Ja
Beveiligd: Ja
ZelfdeSite: Lax
Cookietest
Het doel van deze cookie is om te testen of de browser cookies accepteert. Deze cookie bevat alleen de waarde ‘True’.
Waarde: Niet versleuteld
Domein: Huidig domein
Pad: /
Verloopt: Sessie
HttpOnly: Nee
Beveiligd: Ja
ZelfdeSite: Lax
