Le capacità dei cookie sono cresciute ed evolute nel corso degli anni, ma hanno lasciato in eredità alcuni problemi. Per risolvere questo problema, i browser (tra cui Safari, Chrome, Firefox ed Edge) stanno modificando il loro comportamento per quanto riguarda gli attributi SameSite e Secure per un modello sicuro di default per i cookie.
Come sviluppatore web 4D, potreste preoccuparvi del cookie di sessione delle sessioni web 4D se volete evitare che la vostra applicazione sia soggetta a Cross-site request forgery.
Per evitare che il vostro cookie di sessione web circoli inutilmente sul web o venga frainteso dai browser a causa di un valore predefinito applicato, dovreste chiedere se si tratta di:
- un cookie di terze parti: associato a un nome di dominio diverso da quello della pagina in cui si trova il cookie. Un cookie di terze parti viene inserito da un oggetto della pagina( ad esempio un annuncio pubblicitario) proveniente da un dominio diverso da quello che ospita la pagina
oppure
- un cookie di prima parte: associato al dominio della pagina
A seconda del caso d’uso, è necessario scegliere il valore appropriato per l’attributo SameSite del cookie di sessione web.
Per rafforzare la sicurezza, l’attributo Secure deve essere impostato per il cookie di sessione web quando la connessione è protetta (HTTPS) per indicare al browser che il cookie può essere inviato in modo sicuro.
Continuate a leggere per scoprire come 4D vi aiuta a migliorare la privacy e la sicurezza sul web.
Per poter scegliere il comportamento del server web, abbiamo migliorato l’oggetto server web aggiungendo una nuova proprietà sessionCookieSameSite.
Impostare il valore dell’attributo Samesite
Per impostazione predefinita, il server Web imposta l’attributo SameSite del cookie di sessione su“Strict“. Abbiamo scelto questo valore perché è il più sicuro.
Se si desidera un altro valore, utilizzare il comando WEB Server:
var $webServer; $settings: Object
$settings :=New object()
$webServer :=WEB Server
$settings .sessionCookieSameSite:=Web SameSite Lax
$webServer .
stop()
$webServer .
start($settings)
Ogni valore di sensibilità per l’attributo SameSite è fornito nel linguaggio 4D con costanti specifiche:
- Web SameSite Lax = “Lax”
- Web SameSite Strict = “Strict”
- Web SameSite None = “Nessuno”
Ecco una panoramica di ciò che vedrete nel vostro browser:
e l’attributo secure?
Se il valore dell’attributo SameSite è “None”, alcuni browser potrebbero richiedere che l’attributo Secure sia impostato su un altro valore per poterlo inviare (solo se la connessione è HTTPS).
La buona notizia è che il server Web 4D gestisce questo aspetto automaticamente.
Se la connessione è HTTPS, il cookie di sessione viene automaticamente impostato con l’attributo Secure, in modo che i browser lo inviino.
Ecco una panoramica di ciò che si vedrà nel browser con una connessione HTTPS:
Ora lavoriamo in sicurezza con le nostre applicazioni web e discutiamone sul forum!