Metodo di memorizzazione delle impostazioni dei cookie

1

Ho un'app Web che deve memorizzare alcune preferenze non sensibili per l'utente. In questo momento sto memorizzando le loro preferenze di lingua e in che modalità vogliono una finestra aperta di default in due cookie:

  • "lang" può essere "en" o "de"
  • "modo" può essere "design" o "view"

Potrei aggiungerne altri in futuro. Non sono sicuro di quante, ma probabilmente mai più di una dozzina.

La lingua viene analizzata ad ogni richiesta, mentre il cookie della modalità viene usato solo occasionalmente. Ho visto una raccomandazione che aveva senso non dovrei provare a fare ciò che stavo originariamente pensando di fare e digitare strongmente una classe di impostazioni utente deserializzata su ogni richiesta a causa del sovraccarico.

Qui vedo tre opzioni e non sono sicuro quale sia il migliore in assoluto.

  • Mantieni le cose come sono, aggiungi un nuovo cookie per ogni nuova impostazione
  • Combina i cookie in un singolo cookie delle impostazioni e aggiungi a esso valori futuri
  • Modifica il cookie della modalità alle impostazioni (lasciando solo la lingua), aggiungi i nuovi valori delle impostazioni utente al cookie delle impostazioni

Tutti funzionerebbero ovviamente. Mi sto appoggiando all'opzione tre, ma non sono sicuro se esiste una best practice per questo?

    
posta Paul 20.11.2012 - 19:29
fonte

2 risposte

1

Buona domanda.

Non conosco alcun standard in merito ai cookie. So cosa funziona per me. Potrebbe variare da una piattaforma all'altra. Tieni presente che i dati memorizzati nei cookie sono visibili a chiunque.

Criptico sempre i cookie, anche se i dati non sono importanti. La crittografia garantisce l'integrità del cookie. Una persona malintenzionata non può sapere come sto usando il cookie. Se il cookie viene manomesso, fallirà la decrittazione. Generalmente serializzo, con JSON, una classe nel cookie. Ciò mantiene i dati strutturati e consente un modo semplice di leggere e scrivere dati da e verso i cookie. A seconda dei browser e dei server ci sono limitazioni. È importante mantenere i dati dei cookie al minimo. Più piccolo è, meglio è.

    
risposta data 20.11.2012 - 19:48
fonte
1

L'approccio tipico è archiviare solo un ID di sessione univoco con il cookie. Non è necessario memorizzare altro che sul lato client. Sul lato server si associano i dati con quella chiave. In genere ciò significa una tabella di informazioni sulla sessione che contiene almeno due colonne: l'id della sessione e i dati della sessione. I dati di sessione sono spesso costituiti da una struttura di dati serializzata (in php, una matrice, ad esempio). Al caricamento della pagina, dopo aver letto l'id della sessione dalla richiesta, caricare e unserializzare i dati della sessione dal database (o dal sistema di archiviazione di propria scelta). Al termine della richiesta, salvala nuovamente nel database.

    
risposta data 20.11.2012 - 21:40
fonte

Leggi altre domande sui tag