Page 1 sur 1

sécurité des cookies

Posté : 24 janv. 2006, 21:54
par patami
salut

après pas mal de recherches sur le sujet, je n'ai toujours pas trouvé de solution satisfaisante pour protéger mon site utilisant les sessions et cookies.

A partir du moment où un hacker peut s'emparer des cookies d'un utilisateur (pas si difficile que ça d'après ce que j'ai compris), il peut trouver l'id de la session de cet utilisateur et peut alors utiliser ses différentes var de sessions (pour cela vu le temps de vie limité d'une session le risque peut à la limite être encourru ; surtout si l'on paramètre correctement son serveur)
Mais par contre, et là réside le danger, il peut également avoir accès au mot de passe de l'utilisateur stocké dans un cookie (crypté certes, mais toujours utilisable pour se connecter au site ..).

Que faire dans ce cas, si je tiens à offrir à l'utilisateur un système de connexion automatique (conservation du pseudo et pass dans cookies) ?

Merci d'avance

patami

ps :

un article intéressant sur les sessions : http://phpsec.org/projects/guide/fr/4.html

un autre sur les cookies : http://www.phpsecure.info/v2/article/Se ... Secure.php

Posté : 24 janv. 2006, 22:27
par nicolas
On ne stocke le mot de passe, ni dans la session ni dans un cookie même crypté.
Après pour les vols de sessions, ce n'est possible de manière simple que si le voleur a accès à la machine modulo les failles de sécurité de la machine; en admettant que la personne ait une session active bien entendu.
Conseille à tes utilisateurs de se déconnecter proprement plutôt que de fermer le navigateur.
Et pour le vol des sessions à toi de voir quel est le danger que cela implique. Pour toutes les opérations sensibles (changement de mot de passe, changement d'email,...) tu redemandes le mot de passe courant. Puisque le voleur n'a pas accès au mot de passe courant (il n'est pas dans le cookie) il ne peut agir et faire des dégats que sur la session courante.

Posté : 24 janv. 2006, 22:29
par nicolas
Pour compléter, j'ajouterais qu'il est fortement d'avoir les paramétrages suivants au minimum:
session.use_cookie = 1
session.use_only_cookie = 1
session.trans_sid = 0

Posté : 24 janv. 2006, 22:41
par patami
Merci pour ton aide :)

Le problème de tes paramètres est qu'ils obligent à accepter les cookies .. ce qui restreint l'accessibilité (note que j'ai envisagé cette restriction par sécurité, j'y réfléchis ..)

Mais, comment puis-je créer une connexion automatique au site sans utiliser les cookies (on est connecté automatiquement en arrivant sur le site, après vérification des infos (pseudo et pass) contenues dans le cookie) ?
Ou plutôt, comment puis-je sécuriser ce système de connexion automatique ?

merci d'avance

patami

Posté : 24 janv. 2006, 22:50
par Cyrano
Tu peux difficilement sécuriser quoique ce soit dans la mesure où tu stockes des informations sur la machine de l'internaute: tu n'as absolument aucun contrôle sur les gens qui ont accès à cette machine : tu n'as donc aucun moyen de savoir si la personne qui se connecterait automatiquement est bien celle qui s'est inscrite ou un futé qui utilise sa machine.

Posté : 25 janv. 2006, 00:14
par patami
okay merci à tous les deux

Dans ce cas, je vais supprimer le système de connexion automatique pour les personnes ayant des accès aux fonctions d'administration, ainsi une vérification d'identité pourra être effectuée à chaque visite.

bonne soirée

patami

Posté : 27 janv. 2006, 12:07
par nicolas
Pour faire un système de connexion automatique tu crées un cookie avec un md5 composé du login et d'une phrase que toi seul connait. Tu stockes cet identifiant dans le cookie et dans une table des connexions ouvertes. Tu ne crées cet identifiant qu'à la connexion (login et mot de passe correct) et en supposant que la personne ait coché la case "se souvenir de moi"

Posté : 27 janv. 2006, 15:11
par xou
Pas la peine d'enlever la connect auto pour les admins SUR LE SITE, fais juste en sorte que la connection auto ne marche pas pour accéder à la partie admin et que seules les sessions gèrent leur accès.

Posté : 27 janv. 2006, 19:35
par patami
Pour faire un système de connexion automatique tu crées un cookie avec un md5 composé du login et d'une phrase que toi seul connait. Tu stockes cet identifiant dans le cookie et dans une table des connexions ouvertes. Tu ne crées cet identifiant qu'à la connexion (login et mot de passe correct) et en supposant que la personne ait coché la case "se souvenir de moi"
Je pense que quel que soit le contenu du cookie, tant qu'il est décryptable par le site, si ce cookie est volé le voleur n'aura pas besoin de tenter de le décrypter, il lui suffira de l'utiliser pour se connecter.
Comme le dit Cyrano je ne peux de fait pas me fier sur les membres de mon site, et me dois donc d'obliger une authentification pour accéder à l'espace d'administration :)