J'ai un système de connexion en place pour mon site Web, les détails de l'utilisateur stocké dans la base de données sont
Maintenant, que dois-je stocker dans les cookies? Je pensais à stocker uniquement l'ID utilisateur dans le cookie avec une date d'expiration, puis si l'utilisateur revisite mon site Web après avoir enregistré un chèque pour le cookie et le connectez-le dans (quel type de ne me ressemble pas à moi) et de détruire le cookie S'il décide de se déconnecter.
* Une petite explication serait aussi très utile. Merci p>
4 Réponses :
PHP a une gestion de session intégrée qui fait exactement ce que vous recherchez: p>
http://us.php.net/manual/flook .session.php P>
Je ne recommanderais pas de stocker l'user_id dans le cookie. Au lieu de cela, vous pouvez générer un jeton unique et associer le jeton avec les utilisateurs de votre base de données et vérifier et régénérer le jeton sur chaque demande. Encore une fois, cela est un peu redondant, car la gestion de la session est déjà intégrée à PHP. p>
Pouvez-vous donner un peu d'explication à ce sujet.
Ajoutez simplement le cookie expire à 2 jours ou au nombre de jours que vous souhaitez mémoriser à l'utilisateur et sauvegarder le cookie. P>
Vous ne pouvez jamais stocker l'ID utilisateur que dans un cookie si vous le signez avec une clé secrète que seules vos applications sait. Sinon, il est possible que l'utilisateur change de cookie à n'importe quoi et se connecter comme quelqu'un d'autre. Donc, si vous souhaitez stocker l'ID utilisateur, stockez également un hachage de l'ID utilisateur avec la clé secrète (idéalement en utilisant HMAC ) et lorsque vous souhaitez les enregistrer, calculez le même hachage et comparez-le au hachage du cookie. Une autre solution consiste à générer un jeton aléatoire, de stocker dans la base de données et d'utiliser cela dans le cookie. Si c'est assez long et assez aléatoire, il y a très peu de chance que quelqu'un devienne jeton d'une autre personne. P>
Merci!. Mais que voulez-vous dire "ID utilisateur avec la clé secrète". Si je suis un mauvais gars et que j'en acier tout le cookie, et que cette chaîne de hachage prétend que je suis l'utilisateur connecté, le serveur peut-il savoir que je suis la mauvaise personne?
Le point de la clé secrète est de vous assurer que vous ne pouvez pas «se connecter» comme utilisateur que vous souhaitez simplement en définissant le cookie. Sans connaître la clé secrète, vous n'avez aucun moyen de construire le cookie. Si vous acierez tout le cookie pour un utilisateur existant, vous pouvez bien sûr vous connecter à cet utilisateur. Il y a quelques façons que vous puissiez faire pour empêcher que: 1) Faites expirer le cookie après un certain temps (encoder l'horodatage dans le cookie), 2) rendre le cookie spécifique à une certaine adresse IP (à nouveau, encoder l'adresse IP dans le cookie ), 3) le rendre spécifique à une certaine chaîne d'agent utilisateur (cela peut être facilement truté)
Stackoverflow.com/a/477578/2224584 - Il y en a un peu plus que cela. Voir aussi: paragonie.com / Blog / 2015/04 / ...
php '$ _Session cela pour vous. Vous pouvez même écrire votre propre classe de session si vous aimez le contrôle total. p>
Un petit tutoriel est trouvé ici: http://www.tizag.com/phpt/phpsessions.php P >
Voici un petit exemple pour utiliser MySQL pour stocker des sessions au lieu de PHP par défaut (fichiers IN / TMP): http://www.hawkee.com/snippet/2018/ P>
On dirait que vous avez déjà répondu à la question vous-même, stockez l'ID utilisateur.
Ceci n'est pas sécurisé - voir les réponses ci-dessous.