Bonjour,
j'aimerais vous exposer les mesures de sécurités que j'ai mis en place pour l'identification et les sessions de mes utilisateurs, histoire d'avoir vos avis sur la fiabilité etc...
Quand un utilisateur se logge sur mon site, il se passe les choses suivantes:
- Un enregistrement est crée dans une table "tokens". Un token est une clé alphanumérique aléatoire de 20 caractères affectées à l'identifiant utilisateur avec une date de validité de 30 jours
- Un enregistrement est crée dans une table "sessions". Une session est un lien entre le "user agent" de l'utilisateur et son identifiant avec une date de validité de 30 jours.
- En session est mis trois valeurs : identifiant utilisateur / token utilisateur / une clé propre à l'utilisateur (c'est une clé aléatoire affectée à l'utilisateur dans le mail d'activation envoyé lors de l'inscription)
- En cookies est mis les même trois valeurs. Les cookies sont valable 30 jours et vont servir à reidentifier les utilisateurs si les sessions ont expirées (Session PHP, rien à voir avec la table session).
A chaque action de l'utilisateur sur le site on vérifie avant si:
- L'identifiant utilisateur est toujours valide (utilisateur non banni)
- si le token en session/cookie existe bien pour cet utilisateur et si il est toujours valide (par rapport à sa date)
- si la clé en session/cookie correspond bien à celle affecté à l'utilisateur dans la table utilisateurs
- si le user agent de l'utilisateur correspond bien à un enregistrement dans la table session lié à cet utilisateur et toujours valide (date).
Voila, vous en pensez quoi?
Merci ^^