2010-05-23 20 views
5

J'ai actuellement un site web qui permet à mes visiteurs de se connecter via un script simple que j'ai collé et écrit. Actuellement, je n'utilise que des sessions pour garder les visiteurs connectés. Y a-t-il des avantages à ajouter des cookies sur mon site pour stocker l'état de connexion de l'utilisateur?Sessions et cookies

Ou y a-t-il une meilleure façon de procéder? En utilisant PHP

+0

Je pense qu'il n'y a pas d'autre moyen ... si vous voulez stocker le statut de l'utilisateur connecté, vous devrez utiliser des cookies. – Cristian

+0

@Cristian: Non .... vous n'avez * pas * à, mais l'autre solution est assez moche. (passez-le dans l'URL) – mpen

Répondre

3

@Ramiro Gonzalez Maciel il a dit qu'il a fait ce script, il n'a pas besoin de cadres à prendre comme exemples. Les cadres ont généralement des scripts enveloppés et bien placés.

Pour répondre à cette question:

je stocke habituellement cookies certaines chaînes md5 qui sont combinés de son md5 (mot de passe) et son nom d'utilisateur que je sache à côté tim il entre dans mon site qui a été connecté afin Je ne lui faire à nouveau connecter

mon exemple:

<?php 
    $username = $_POST['username']; 
    $password = $_POST['password']; 
    // sql and escape stuff witch will return 1 if he has entered a valid login 
    if($sqlreturn == 1){ 
     // do login 
     $wraplogin = md5($username."-".md5($password)."-".SECRET_KEY); // I always define a define('SECRET_KEY', 'mysecretkey'); in global file. 
     // now you can store that $wraplogin in cookies and remember his login. Next time he enters the website, you read that cookie, compare it with what you have in your database and let him in. 
    } 
?>

maintenant, je sais que ce n'est pas le meilleur exemple, mais j'ai personnellement utilisé dans des sites très importants (> 500.000 utilisateurs) et aucun a piraté encore :)

C'est l'avantage dans les cookies pour la partie de connexion.

Bonne chance.

+0

Faut-il vraiment mettre le mot de passe dans le hachage md5? Je pense qu'un autre bit de données aléatoire, l'horodatage d'enregistrement des utilisateurs peut-être, serait mieux. Je sais que longtemps d'une ficelle ne pourrait jamais être forcée par la force mais juste être du côté paranoïaque sûr. BTW de ce que j'ai découvert l'avantage des cookies est que vous pouvez les définir pour garder l'utilisateur connecté pendant XX jours. – Derek

+0

oui, principalement vous pouvez installer n'importe quoi dans ce cookie de connexion, IP utilisateur etc. J'ai ajouté le mot de passe pour rendre cette chaîne un peu plus complexe, mais comme je l'ai dit, vous pouvez mettre n'importe quoi :) tout ce qui peut être vérifié plus tard. –

4

Si vous utilisez des sessions PHP, vous utilisez des cookies. PHP stocke l'ID de session dans les cookies et les données de session dans un fichier sur le disque de votre serveur Web.

1

Les frameworks Web (Java Servlets et autres) utilisent généralement des cookies pour identifier les sessions; l'autre option habituelle est les paramètres d'URL. Donc, en supposant que vous utilisez un framework web, il utilise probablement déjà des cookies pour stocker l'identifiant de session. Web Framework utilisera cet ID pour identifier l'objet Session dans chaque requête. Bien que les cookies survivent aux redémarrages du serveur, puisqu'ils sont stockés dans le navigateur, les objets Session ne le sont généralement pas, sauf si vous avez configuré la persistance de la session. Si vous voulez que les utilisateurs se «reconnectent automatiquement» comme dans l'option habituelle «rembember me» de nombreux sites Web, vous devrez conserver les objets Session si votre framework le permet. Ou implémentez un système similaire, en utilisant des cookies pour stocker un "jeton connecté", et en vérifiant ce jeton lorsque l'utilisateur accède au système pour les enregistrer automatiquement ou les envoyer à une page de connexion. (Edit: comme Mihai propose d'autres réponses)

Si vous voulez implémenter votre propre méthode, je vous suggère de vérifier comment les frameworks web les implémentent, en particulier les aspects sécurité et confidentialité du stockage des données utilisateur dans les cookies.