Stavo pensando a una situazione per evitare la condivisione di sessioni o il dirottamento, convalidando l'IP che l'utente ha effettuato il login contro l'ip che sta accedendo a una pagina dopo l'accesso. Funzionava finché non ho capito che è possibile quando l'utente proviene da un'altra rete e qualcuno dall'interno della stessa rete ha copiato (o dirottato) il cookie su un'altra macchina. Dopo aver copiato un cookie da una sessione registrata su un'altra macchina, l'altra macchina può accedere all'applicazione senza accesso perché l'ID della sessione è ok e l'IP (quando esce su Internet) è lo stesso.
C'è un modo per evitarlo?
Stavo pensando di crittografare il cookie utilizzando SSL dal server che condivide la chiave come fa per la connessione SSL. In questo modo solo il cliente giusto avrebbe il giusto valore del cookie. (Qui non sto parlando di connessione con SSL ma crittografare il cookie. L'SSL sarà usato per crittografare il contenuto come al solito). Non ho ancora trovato nulla al riguardo.
Direi che la domanda è più simile a "Come posso creare un cookie crittografato basato su ciascun client e il server è l'unico che può decodificare il cookie". Se lo criptico sul server, in base alla mia chiave di crittografia, sarà la stessa crittografia per ogni utente e continuerà a essere copiato.