[PHP] Cookies

Résolu/Fermé
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 - 14 sept. 2005 à 15:20
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 - 14 sept. 2005 à 17:29
Hello à tous,

Voilà, je suis en train de créer une section membre pour mon site, en php. J'aimerais, lorsque mon visiteur se logg, qu'un cookie soit généré afin de reconnaître sur les pages suivantes que l'utilisateur est connecté, et son statut.

Ma question est de savoir, car tout ce que j'ai lu sur le web m'a plus embrouillé qu'autre chose, si la sécurité n'est pas trop laxiste avec ce système. Je crée en fait deux cookies, un avec le pseudo de l'utilisateur, et un autre avec son statut, de manière a pouvoir différencier les admins des membres.

Donc est-ce qu'il y a un (gros) risque (car il y a toujours un risque ;) ) que les cookies puissent être violés ? Un cryptage est-il nécessaire ?

Merci pour vos réponses.

@+
A voir également:

1 réponse

StreM Messages postés 515 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 28 février 2007 124
14 sept. 2005 à 15:29
Je pense que ca dépend quel sécurité tu veux. Je m'explique :
Tu dois savoir qu'un cookie est stocké sur le poste client sous forme de fichier texte, sans aucun cryptage. Donc sur des systèmes basiques comme windows 98 ou même XP avec un formatage en FAT32 (pas de droits d'accès sur les répertoires), n'importe qui peut y avoir accès. Et si tu regardes le contenu du cookie, oui, c'est tout marqué en clair !
Et typiquement, c'est ULTRA SIMPLE de changer la valeur de ta variable "admin?" de non à oui !
Donc penche toi vers du cryptage/dévryptage (donc pas de MD5 !), en effet !

A moins que quelqu'un d'autre ait une solution...

http://www.securiteinfo.com/conseils/cookies.shtml
1
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
14 sept. 2005 à 15:37
Je pensais bien que tu interviendrais ;)

En fait, j'ai décidié entre temps de laisser tomber le statut par cookies, une petite requête mysql et hop, plus sûr, et peut-être un poil plus lent, mais c'est pas un gros site.

Sinon, maintenant j'ai un autre problème, j'ai regardé un peu comment étaient fait les cookies de ccm, et j'ai vu que ce n'est pas l'identifiant qui est inséré (lui aussi trop facile à modifier...), mais l'id de session. Alors je suppose qu'il y a une table temporaire ou sont stockés tous les id des sessions en cours sur ccm, et qu'à chaque fois un script va vérifier si la session à bien été enregistrée ?

Est-ce que quelqu'un pourrait m'en dire un peu plus sur le fonctionnement des sessions sous ccm ?

J'ai lu ça :

http://www.commentcamarche.net/php/phpcookie.php3

et deux ou trois autres articles de ccm et d'ailleurs, mais rien ne vaut une "vraie" explication du fonctionnement. Alors si quelqu'un y arrive, ou si quelqu'un à une idée ;) Merci
0
StreM Messages postés 515 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 28 février 2007 124 > Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007
14 sept. 2005 à 15:45
Héhééé... je pensais bien que tu pensais que j'interviendrais ;))

Sinon, pour les sessions de CCM, je pense savoir comment elles fonctionnent, car j'ai déja intervenu sur une application qui utilisait ce système, et il est vrai que ca peut servir à pleins de choses :

En fait, tu crées toi-même ton identifiant de session (un md5(rand()) et hop !), que tu stockes ET dans ta table SESSIONS ET dans ton cookie. Ainsi, tu retrouves les données dans la base de données. Problème : n'importe qui peut prendre le cookie d'un autre, et qui sait ce que ca peut donner ? A moins que tu fasses un test sur l'IP du client, mais même, point de vue de la sécurité, c'est pas génial...
Enfin de toutes facons, pour une sécurité optimum, tu ne peux que demander un identif et un mdp a chaque fois. C'est pour ca que je te demandais comment, dans quelle mesure tu comptais mettre en place ta sécu ?

0
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497 > Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007
14 sept. 2005 à 15:52
Donc en fait, le plus simple, c'est de démarrer une session si le mot de passe et le compte d'utilisateurs sont juste, toutes les infos sont retirées à partir de la base de données (statut, droits, etc), sont stockés dans la session, et à chaque fois que le visiteur quitte le site, il doit se reconnecter.

Ca, je peux le faire, il n'y a pas de problème (c'est déjà plus ou moins en place en fait), mais j'aimerais bien pouvoir faire en sorte que le visiteur reste connecté même lorsqu'il quitte le site, durant une certaine période (en l'occurence 12h).

Donc mon problème est la sécurité avec les cookies, je ne vois pas trop comment faire en sorte que le visiteur ne puisse pas se faire voler sa session (ou même la traffiquer en fait).
0
StreM Messages postés 515 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 28 février 2007 124 > Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007
14 sept. 2005 à 16:08
Pour moi, tu devrais faire le systeme de session par BDD (tu generes toi meme l'id de session) et stocker cet id dans un cookie. Par ce système, l'utilisateur n'a AUCUN moyen de modifier son statut, puisqu'il est en BDD, pas dans le cookie. Après, il faut compter sur la sécurité du compte windows de l'utilisateur (les comptes linux n'ont pas de problemes de sécurité ;) ).
Et tu mets une date d'expiration POUR ton cookie (pas dedans ! Quand tu le crées !), et DANS ta BDD (pour ne pas que l'utilisateur puisse le modifier, et que tu puisses faire un test pour vérifier que ca ne fait pas encore 12h qu'il s'est déloggué)

Après, je te laisse réflechir pour l'utilisation optimale : n'oublie pas de mettre a jour la date de derniere connexion (dans la BDD, ca va de soi) de l'utilisateur dans chaque page.

Ca va aller ? :-P
0
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497 > StreM Messages postés 515 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 28 février 2007
14 sept. 2005 à 16:09
P.S. je t'aiderai bien sur ton javascript, mais bof, j'm'y connais moi que toi. Sympa ton truc, même si c'est pas encore 100% au point, ça promet ;)
0