<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Dai una occhiata a come Flask usa le sessioni. Ti risparmieresti un 
sacco di grattacapi (tra cui la necessita' di condividere le sessioni su
 piu' server quando vuoi distribuire l'applicazione).<br></blockquote>
</div><div><br>
</div></div></blockquote><div>Ho realizzato qualcosa di molto simile a 
quello in uso da Flask, ma alla fine sono giunto alla conclusione che 
non è poi così usabile come soluzione.<br>
Se salvassi sul client un dizionario serializzato con pickle e poi con 
codificato con base64 l'utente se a conoscenza dei dettagli di 
implementazione dell'applicazione (in qualche modo viene a sapere che si
 usa un framework opensource), potrebbe facilmente ricavarsi i dati di 
tale implementazione, quindi decodificare il dizionario, modificarlo e 
modificare il cookie con il nuovo valore.<br>
<br>
Avere un hash da qualche parte per verificarne il contenuto 
implicherebbe comunque una persistenza dei dati server side perchè 
finita la richiesta perdiamo tutti i dati e bisogna salvare l'hash e 
quindi poi poterlo riconoscere.<br>
Potrei ovviare al problema usando una keyword "secret" e con un 
algoritmo di crittazione a chiave simmetrica, in modo da ricostituire 
poi il testo originale e ripete l'algoritmo all'inverso per 
deserializzare il dizionario, ma a questo punto dovendo perdere tempo a 
fare tutti questi calcoli mi chiedo se realmente sia significativamente 
più efficente di una classica soluzione file-based o db based 
(attualmente non supportata).<br><br>Se sbaglio qualcosa correggetemi pure.<br>
<br>
Riguardo la possibilità di race conditions per l'implementazione 
attuale, come dovrebbe comportarsi il session manager quando il file è 
già sotto un lock? Dovrebbe aspettare che il file sia accessibile? 
oppure dovrebbe semplicemente sollevare una eccezione, o ritornare 
silenziosamente al flusso dell'applicazione senza aver fatto nulla?<br>
<br>
Grazie mille.<br>
PS. se in qualche modo creo disturbi scrivendo qui vi prego di farmelo sapere, grazie.<br>
</div></div>