Ho sviluppato applicazioni web da un po 'di tempo. Durante la creazione di siti Web, la funzione "ricordami di me" è una delle funzionalità più banali (lette come must-have-for-clients) da implementare. Fino ad oggi, stavo solo usando le implementazioni di default forniti dal sistema di autenticazione ASP.NET - che devo dire, è abbastanza sicuro (a patto che non si violino con l'implementazione di default fornita). Ma oggi, sono appena diventato curioso dei dettagli di implementazione di questa funzionalità. Ho fatto alcune ricerche e ho esaminato alcuni articoli correlati:
Troy Hunt- Come e come non costruire
migliorata persistenti In Accesso Cookie Best Practice
L'articolo di Troy tratta fondamentalmente alla conclusione che, se possibile, è meglio non implementare questa funzionalità a tutti, come non importa cosa, nonostante i vostri sforzi, si sta andando sempre di avere a venire fino a un compromesso relativo alla sicurezza. Allo stesso modo, l'articolo di Barry, basato su Miller, Charles design, ha alcuni passi strategici molto belli per minimizzare la superficie di attacco e complicare il vettore di attacco.
Quindi, arrivando al punto principale, dopo aver esaminato questi articoli, una cosa che mi è venuta in mente è stata, why are the cookies not signed by the browsers ? Wouldn't it be best if each browser-client (mobile/desktop/whatever), had their own unique GUID kind of thing, which was not to be modified(under any circumstances), and then they can send their GUID to the servers, and the server could then use as the key-value to decrypt/verify any client-side information(cookies/querystrings) ?
Wouldn't this solve the issue of session-hijacking/cookie-hijacking completely, as a cookie from one browser would then be totally useless for another browser ?
Scusa se questo sembra ingenuo, ma apprezzerei molto i suggerimenti e i feedback su questo. Grazie.