La strada della verifica dell'useragent e dell'ip come ulteriore misura di controllo per verificare l'appartenenza più o meno leggittima dell'utente alla propria sessione è una strada già battuta. Te la sconsiglio principalmente per due motivi:Ovviamente aggiungendo il campo che collega la sessione all'account dell'utente e fare la verifica sui campi sess_ip, sess_user_agent e sess_id:
- L'useragent non è un dato affidabile: se in qualche modo riesco ad ottenere il token della sessione, sicuramente riesco ad ottenere anche l'useragent. E anche se non riesco ad ottenerlo, posso sempre indovinarlo.
- Il controllo dell'ip è problematico, evitalo se possibile. Se un utente loggato legittimamente è connesso attraverso un proxy server (come succede in molte università e in molti uffici) allora otterrai un falso positivo dalla tua applicazione, che considererà la sessione illegittima anche se non lo era.
La soluzione per una autenticazione sicura è banale: metti tutto dietro https.![]()