Sessions ou coockies ?

Les cookies et les sessions sont deux méthodes de stockage, qui permettent de conserver les données de l'utilisateur d'une page à l'autre. Les cookies et les sessions sont des mécanismes différents et sélectionner la bonne stratégie le plus tôt possible est un investissement qui vous évitera de lourdes modifications si, plus tard, vous vous appercevez que ce n'était pas le bon choix.

Les cookies

Les sessions

Comment choisir ?

Comme disent les anglais : Don't trust user input!

Les sessions utilisent un cookie! Les données de la session sont enregistrées sur le serveur, mais un UID est enregistré côté client dans un cookie. Ce dernier permet au serveur de faire l'association entre toutes les sessions enregistrées et les utilisateurs. L'UID est protégé et relativement complexe à pirater, mais il n'est pas invulnérable. Pour les actions sensibles (changement d'adresse email ou de mot de passe), ne faites pas confiance aux sessions et encore moins au cookies : demander à l'utilisateur de saisir son mot de passe pour confirmer l'action.

Les données sensibles ne doivent jamais être enregistrées dans des cookies (emails, mots de passe encryptés, données personelles...). Gardez à l'esprit que les données sont enregistrées sur un ordinateur distant, si cette machine n'est pas privée (salle de classe ou ordinateurs publics), une tierce personne peut potentiellement accéder à ces données.

Les données Remember me permettant de se souvenir d'un utilisateur d'une session à l'autre doivent être enregistrées dans des cookies, sinon elles seront perdues quand l'utilisateur fermera le navigateur. Toutefois, il ne faut jamais enregistrer un mot de passe ou des données personnelles dans ce cookie. Enregistrez ces données dans la base de données et liez-les avec une paire cryptée Identifiant / clé que vous enregistrez dans un cookie.

Si vous avez lu les recommandations précédentes, le choix entre les cookies et les sessions se résume à cette question :

Est-ce que les données persistantes doivent être conservées après que l'utilisateur ait fermé son navigateur ?


Dernière mise à jour : 18/11/2019