Cookie security

Smartsite 8.0 - ...

Nieuw in Smartsite 8.0 is dat voortaan standaard cookie security wordt toegepast. Het gaat dan om de SameSite eigenschap, en de HttpOnly en secure eigenschappen.

Een en ander afhankelijk van de instellingen en of de site wel of niet over https wordt benaderd.

Smartsite.security.config

De instellingen voor het toepassen van cookie security liggen vast in het cookiesettings element in het Smartsite.security.config configuratie bestand (zie het voorbeeld hieronder).

<?xml version="1.0" encoding="utf-8"?>
<configuration
  xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://schemas.microsoft.com/.NetConfiguration/v2.0 System/Schemas/Configuration/smartsite.security.config.xsd">
  <smartsite.security>
<!-- other config sections omitted -->
<cookiesettings>
<!-- Default settings -->
<cookie name="*" samesite="Strict" httponly="true" />
<!-- Specific settings (examples) -->
<cookie name="Example1" samesite="None" />
<cookie startswith="Demo." samesite="Lax" />
<cookie startswith="mgr." samesite="Lax" />
</cookiesettings>
  </smartsite.security>
</configuration>

Hierbinnen moet er één cookie element bestaan met als name "*", waarin de default instellingen worden vastgelegd.

Daarnaast kunnen er één of meerdere cookie elementen bestaan om voor specifieke cookies (m.b.v. het name attribute) of voor een groep van cookies die allemaal een specifieke prefix gebruiken in de naam (m.b.v. het startswith attribute) andere instellingen te configureren.

SameSite

De SameSite eigenschap van een cookie bepaalt wanneer een cookie wordt meegestuurd bij een request en kent drie waardes:

  • None
  • Lax
  • Strict

Strict is de meest veilige optie en in het algemeen de gewenste default voor Smartsite omgevingen. Indien nodig kan dan via één of meerdere cookie elementen hiervan worden afgeweken voor specifieke cookies.

HttpOnly

De HttpOnly eigenschap, indien gezet, zorgt ervoor dat het cookie niet via javascript kan uitgelezen worden (en ook niet aangepast kan worden). Het is ook zelden nodig dat een cookie wel via javascript uitgelezen of gezet moet kunnen worden.

In het enkele geval dat dit voor een specifiek cookie wel het geval is, kan dus via een extra cookie element een uitzondering geconfigureerd worden.

Secure

De Secure eigenschap van een cookie, indien gezet, bepaalt dat het cookie alleen verstuurd mag worden als het een https request betreft.

Deze eigenschap wordt door Smartsite automatisch gezet, afhankelijk van het scheme van het request op het moment dat het cookie wordt geschreven. Vanaf dat moment wordt het cookie ook alleen nog maar mee verstuurd met een request als deze ook over https verloopt.