PHP ouverture de session et cookie
Sur mon site PHP, les utilisateurs peuvent se connecter et avoir la possibilité de cocher la case "se Souvenir de moi" pour définir un cookie.
Que dois-je ranger comme un SESSION
variable? Le nom d'utilisateur, mot de passe haché et user ID
, ou seulement le user ID
? Si je ne stocker le user ID
, ne serait-il pas possible pour quelqu'un de modifier la SESSION
et changer l'ID?
Ce sujet de la COOKIE
? Dois-je stocker uniquement les user ID
? Autant que je sache, les cookies peuvent être modifiés par l'utilisateur final...
OriginalL'auteur Adam Strudwick | 2013-07-05
Vous devez vous connecter pour publier un commentaire.
Il semble que vous n'avez pas une vision claire des sessions et des cookies!
Pas de corps peut changer la session table des matières à l'exception de votre code (à côté d'attaques). Ainsi, vous pouvez stocker tout (raisonnable) comme
user id
ouusername
que vous avez besoin d'accéder fréquemment. dans les cookies, vous devez stocker de l'obfuscation d'informations que vous pouvez reconnaître que plus tard, quand il/elle tente d'accéder à votre page. en se basant sur le contenu de cookie vous pouvez régénérer les utilisateurs de la session (c'est à dire. re-connexion de l'utilisateur automatiquement). Juste à noter que l'utilisateur PEUT modifier les cookies contenu de sorte qu'il ne doit pas être quelque chose de simple commeuser id
pour des raisons de sécurité.Je vous donne juste un exemple simple, il est loin d'être parfait, mais pas mal! vous devrez peut-être l'adapter à votre scénario:
ici, vous pouvez créer le contenu de cookie comme ceci:
et, plus tard, à une re-connexion de l'utilisateur que vous faites:
Mise à JOUR:
J'ai écrit cet article que recouvre ce concept. Espérons que cela aide.
vérifier la mise à jour! le code est écrit à la volée! donc, si vous voyez des fautes de frappe ou de bugs, je suis désolé pour essayer de le réparer ou de me dire le problème
Merci, ça me semble une bonne approche. Que pensez-vous de ceci: fishbowl.pastiche.org/2004/01/19/... ? Me paraissent excellentes. Mais est-il obsolète?
Ce n'est pas si mauvais, mais considérer dans cette solution dont vous avez besoin pour stocker le nombre aléatoire, il a mentionné en DB. C'est plus fort que ma solution aussi loin que vous pouvez créer, vraiment bonne RANDOM nombre pour éviter les attaques de force brute. utilisez votre bon sens et de choisir ce que jamais vous pense que c'est mieux adaptée à votre contexte du programme.
Vous êtes à l'aide de md5 pour cacher un mot de passe. Ne le faites pas, pour quelque raison que ce soit. Il est généralement préférable de créer un complètement aléatoire, la valeur de ce souvenir de moi cookie et l'enregistrer comme une alternative mot de passe pour le compte utilisateur. De cette façon, il est encore plus aléatoire que le mot de passe habituel, et personne ne peut utiliser la valeur pour désosser le mot de passe.
OriginalL'auteur Boynux
Vous devez conserver de la valeur de session aléatoire dans le cookie. Vous certainement ne devrait pas être de stocker toutes les informations concernant l'utilisateur dans le cookie lui-même. Vous pouvez ensuite vérifier l'id de session dans le cookie sur chaque chargement de la page pour s'assurer que (a) l'utilisateur doit avoir accès à ce contenu, et (b) que l'ID de session est valide.
En PHP, vous pouvez utiliser
session_set_cookie_params
etsession_name
pour définir les paramètres du cookie.OriginalL'auteur Stephen Cluff
Pour qui préfèrent l'utilisation de cookies (Donc vous pouvez y accéder de temps plus tard, même si le navigateur est fermé) c'est un moyen sûr de stocker, même approximative ID dans les cookies:
Pour empêcher la bibliothèque d'attaque correspond à cette chaîne de caractères aléatoires, vous pouvez également forcer la déconnexion dès que la vérification échoue ou le blocage d'IP pour un certain temps.
OriginalL'auteur Ali Sheikhpour
Utilisateur ne peut pas modifier la variable de session, elles sont gérées sur le serveur.
Variable De Session Avantage
1.)Sécurisé
2.)Robuste
Session Inconvénient
1.) La durée de vie, jusqu'à la session existe ,
session de la destruction
lorsque l'utilisateur ferme son navigateur
redémarrage du serveur
session détruite à l'aide de session_destroy();
Si la session est plus sûr
Cookie sur l'autre main, laissez-vous vous souvenez de l'utilisateur prefrences
Si vous utilisez une combinaison des deux , puis son avantage à votre code
Si sa n'existe, alors vous pouvez de connexion de l'utilisateur et de garder les infos de session ainsi que la mise à jour de cookie.
OriginalL'auteur Dr_Dang