PHP - utiliser Cookies
Fermé
stephweb13
Messages postés
9
Date d'inscription
vendredi 30 septembre 2011
Statut
Membre
Dernière intervention
11 mai 2020
-
19 mai 2015 à 10:19
13stephweb13 Messages postés 48 Date d'inscription mardi 29 novembre 2011 Statut Membre Dernière intervention 9 mai 2018 - 1 juin 2015 à 23:35
13stephweb13 Messages postés 48 Date d'inscription mardi 29 novembre 2011 Statut Membre Dernière intervention 9 mai 2018 - 1 juin 2015 à 23:35
A voir également:
- PHP - utiliser Cookies
- Utiliser chromecast - Guide
- Supprimer les cookies - Guide
- Easy php - Télécharger - Divers Web & Internet
- Utiliser iphone comme webcam - Guide
- Comment utiliser l'ia - Accueil - Guide Intelligence artificielle
4 réponses
tete0148
Messages postés
413
Date d'inscription
mercredi 19 décembre 2012
Statut
Membre
Dernière intervention
15 juin 2017
89
27 mai 2015 à 21:21
27 mai 2015 à 21:21
Ce que tu fais n'est pas très sécurisé car en connaissant comment tu crées ton cookie, on peut le modifier pour avoir accès au compte d'une autre personne. En effet il suffit que je fasse depuis mon site un sha1 du pseudo d'une personne cible avec son IP et je peux me connecter sur son compte. Le mieux est de générer un cookie avec en valeur une clé unique (unique_id) par exemple, et de stocker en base de donnée le pseudo auquel il correspond comme ça on ne peut pas trouver les cookies des autres utilisateurs (sauf avec beaucoup de chance)
NHenry
Messages postés
15198
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
22 mars 2025
354
27 mai 2015 à 21:43
27 mai 2015 à 21:43
L'idéal reste quand même d'utiliser les Sessions, car les données sont stockées coté serveur et non client.
ElementW
Messages postés
4814
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
27 mai 2015 à 22:09
27 mai 2015 à 22:09
Son cookie peut n'être qu'un ID (certes pas sécurisé), et hypothétiquement il stockerait les infos sur son serveur, imitant donc le comportement des sessions.
Mais bon tant qu'à avoir un système qui gère ça à ta place, inclus dans PHP qui plus est...
Mais bon tant qu'à avoir un système qui gère ça à ta place, inclus dans PHP qui plus est...
tete0148
Messages postés
413
Date d'inscription
mercredi 19 décembre 2012
Statut
Membre
Dernière intervention
15 juin 2017
89
27 mai 2015 à 22:16
27 mai 2015 à 22:16
Sauf que les sessions expirent au bout de 5 minutes d'inactivité donc on ne peut pas utiliser les cookies pour les "rester connecté"
ElementW
Messages postés
4814
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
>
tete0148
Messages postés
413
Date d'inscription
mercredi 19 décembre 2012
Statut
Membre
Dernière intervention
15 juin 2017
28 mai 2015 à 21:19
28 mai 2015 à 21:19
D'où tu sors ça? Dans les deux cas ($_SESSION ou système fait main) tu n'es pas limité à 5 minutes à moins que tu ne configures le système comme ça.
tete0148
Messages postés
413
Date d'inscription
mercredi 19 décembre 2012
Statut
Membre
Dernière intervention
15 juin 2017
89
>
ElementW
Messages postés
4814
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
31 mai 2015 à 22:15
31 mai 2015 à 22:15
par défaut une session ne reste que durant la visite de l'utilisateur
13stephweb13
Messages postés
48
Date d'inscription
mardi 29 novembre 2011
Statut
Membre
Dernière intervention
9 mai 2018
27 mai 2015 à 22:16
27 mai 2015 à 22:16
Bonsoir.
Merci pour vos réponses.
En faite, mon but est que l'utilisateur puisse cocher une case à cocher "rester connecter" lors du login.
Et j'ai fait plein de recherches, et je n'ai pas trouvé grand chose.
On peut y faire avec les session? comment on fait? merci
Merci pour vos réponses.
En faite, mon but est que l'utilisateur puisse cocher une case à cocher "rester connecter" lors du login.
Et j'ai fait plein de recherches, et je n'ai pas trouvé grand chose.
On peut y faire avec les session? comment on fait? merci
NHenry
Messages postés
15198
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
22 mars 2025
354
28 mai 2015 à 21:36
28 mai 2015 à 21:36
Ah, d'accord, dans ce cas, 2 cookies a longue durée de vie, avec l'un le pseudo (pour retrouver l'utilisateur) et l'autre, avec un hash (MD5 ou SHA, par exemple) du navigateur utilisé (user-agent) et quelques autres informations, histoire de rendre le tout difficilement copiable/usurpable, serait envisageable.
ElementW
Messages postés
4814
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
>
NHenry
Messages postés
15198
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
22 mars 2025
28 mai 2015 à 22:51
28 mai 2015 à 22:51
Attention toutefois, on ne fait le hash qu'une fois et on ne revérifie pas derrière: je peux changer d'IP toutes les minutes par rotation de proxy, et faire changer (voire retirer) mon user-agent (automatiquement ou pas) via une extension anti-tracking. Pourtant je reste la même personne avec le même compte.
NHenry
Messages postés
15198
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
22 mars 2025
354
29 mai 2015 à 19:37
29 mai 2015 à 19:37
Le contrôle par User-agent permet d'éviter de se faire "voler" le cookie d'identification.
Je n'ai pas mis l'IP dans la liste des données, car je sais qu'elle peut changer entre 2 passage.
Je n'ai pas mis l'IP dans la liste des données, car je sais qu'elle peut changer entre 2 passage.
13stephweb13
Messages postés
48
Date d'inscription
mardi 29 novembre 2011
Statut
Membre
Dernière intervention
9 mai 2018
1 juin 2015 à 23:35
1 juin 2015 à 23:35
Bonsoir.
Ok merci.
Dans la page Login je fait ceci dans le traitement :
Et dans le header de l'admin je rajoute ceci :
C'est bien comme ceci qu'il faut faire? (notamment avec le user_agent)?
Merci
Ok merci.
Dans la page Login je fait ceci dans le traitement :
<?php
if(isset($_POST['remember'])) {
setcookie("cookname", sha1($_SESSION['Auth']['pseudo'] . uniqid() . $_SERVER['REMOTE_ADDR']), time() + 3600 * 24 * 3, "/", '', false, true);
setcookie("cookmail", sha1($_SESSION['Auth']['mail'] . uniqid() . $_SERVER['HTTP_USER_AGENT'] . $_SERVER['REMOTE_ADDR']), time() + 3600 * 24 * 3, "/", '', false, true);
}
Et dans le header de l'admin je rajoute ceci :
<?php // Sécurité - Cookies. Si un des deux cookie est absent -> Déconnecté ! if(isset($_COOKIE['cookname'])) { if(!isset($_COOKIE['cookmail'])) { header('Location: logout.php'); exit(); } } elseif(isset($_COOKIE['cookmail'])) { if(!isset($_COOKIE['cookname'])) { header('Location: logout.php'); exit(); } }
C'est bien comme ceci qu'il faut faire? (notamment avec le user_agent)?
Merci