Les Allergies
Alimentaires
Posez votre question Signaler

Duplication de cookie & sécurité

Dayo - Dernière réponse le 11 oct. 2009 à 22:28
Bonjour,
j'ai un énorme souci de sécurité sur mon site. Le site est doté d'une partie "admin" où les administrateurs se loggent par un accès sécurisé et reçoivent en échange un cookie valable pour un certain temps.
Il me semble que certaines personnes ont accès à ces cookies (je soupconne une faille de mon hébergeur, OVH) et peuvent donc les dupliquer et être ainsi considérés comme "idenitifiés".
Pour contourner ce problème (et au lieu d'accuser OVH peut être à tort et sans vraies preuves), je pensais procéder à une vérification d'IP à chaque connexion à une page, pour être sûr que l'IP qui navigue dans la partie admin est identique à celle qui s'est identifiée en premier lieu.
Savez-vous comment je pourrais mettre ca en place ?
Merci mille fois.
Lire la suite 

Duplication de cookie & sécurité »

Suggestions
14 réponses
Réponse
+2
moins plus
Salut Dayo !

Je suis Olivier PEREZ, l'administrateur de http://blog.myeasyprog.fr/ .
Il me semble avoir compris ton problème. Et la solution est en effet dans l'article cité plus haut.

Un point qui ne semble pas clair pour toi est le suivant : Comment se passe le vol de session.
Je vais tenter de t'expliquer le plus clairement possible.


Tout d'abord, il faut savoir que la session est stockée sur le serveur. Il n'est donc pas possible de modifier directement sa session (par exemple, tu peux pas modifier le user_id de ta session sur les sites sur lesquels tu es identifié).

Ensuite, le deuxième point à savoir est : Comment le serveur sait à qui appartient chaque session.
C'est très simple.
Le serveur attribut un numéro unique à chaque session puis enregistre chaque session dans un fichier portant le nom du numéro unique.
Et étant dans des fichiers, je tiens à te re-préciser qu'il est impossible qu'un utilisateur ajoute, modifie ou supprime des valeurs dans sa session.

Maintenant, la technique pour se protéger est de définir, dans chacune des sessions, des valeurs qui seront différentes suivant l'ordinateur du visiteur ou l'endroit où il est.
Par exemple son navigateur ou son IP.

Pour finir, je t'invite à bien relire l'article que j'ai écrit sur cette faille (le vol de session) et comment s'en protéger : http://blog.myeasyprog.fr/securite-protegez-vous-contre-le-vol-de-sessions/ .

Si tu as des questions, que ce soit par rapport à ce problème ou un autre, n'hésite surtout pas. J'ai un paquet de réponses à te donner !

Bien amicalement,
Olivier PEREZ
Administrateur du Bloc d'un développeur
Ajouter un commentaire
Réponse
+0
moins plus
pourquoi ne pas mettre une variable de session tout simplement ?

pour ce qui est de l'IP, c'est inutile
Ajouter un commentaire
Réponse
+0
moins plus
Ok je pense avoir résolu le problème :
j'inclus dans $_SESSION l'adresse IP du connectant lors de son identification.
puis pour chaque page, je vérifie si $_SESSION['address'] est identique à $_SERVER['REMOTE_ADDR']

ca vous semble bien ?
ca vous semble sécurisé ?
Ajouter un commentaire
Réponse
+0
moins plus
si tu veux vraiment faire un truc propre, déjà, à l'identification tu place une variable de session indiquant que l'utilisateur est logué, une simple valeur booléenne sufis, ensuite, pour éviter le vole de session, crée un jeton dans la session.
Ajouter un commentaire
Réponse
+0
moins plus
tiens un exemple bien illustré pour le jeton :

http://blog.myeasyprog.fr/jouez-le-jeton-de-la-securite/


pour l'ip, oublis c'est pas utile.
Ajouter un commentaire
Réponse
+0
moins plus
Pourquoi est-ce inutile ?
Je vais voir le truc du jeton..
Ajouter un commentaire
Réponse
+0
moins plus
Hm, je ne pense pas que le jeton puisse m'aider, puisque le jeton est inclus dans $_SESSION, et que les infos de $_SESSION sont stockées dans le cookie. Donc si ce cookie est dupliqué par quelqu'un, il dupliquera aussi le jeton à l'intérieur, non ?
Ajouter un commentaire
Réponse
+0
moins plus
pose toi la question dans l'autre sens, pourquoi ce serrais utile ?
Ajouter un commentaire
Réponse
+0
moins plus
Parce que celui qui se connecte normalement, il a une IP.
Je veux qui lui seul ait accès à sa session.
Celui qui forge un cookie identique au bonhomme d'au dessus, je ne veux pas qu'il ait accès à l'admin. Comment différencier les deux, puisque leur cookie est le même ? Par leur adresse IP, car elle est différente.
Donc à chaque page, je vérifie que l'adresse IP entrée en page de connexion est identique à celle du mec qui tente d'accéder à la page.

Non ?
Ajouter un commentaire
Réponse
+0
moins plus
http://fr.wikipedia.org/wiki/Usurpation_d%27adresse_IP (...)


une session c'est pas loin du cookie mais coté serveur, avec un jeton en plus tu atteins un très bon niveau de sécurité.


personnellement, je relègue le cookie à des utilisation non compromettante ( et encore ... )
Ajouter un commentaire
Réponse
+0
moins plus
alors comment tu gères une session ?
Ajouter un commentaire
Réponse
+0
moins plus
comme dit plus haut, dans mes variables de session j'en fais une genre "connected" que je renseigne suivant que l'identification soit faite ou pas ( true | false ).

déjà là tu as une première base, pour pousser la sécurité tu crée une autre variable "jeton" comme présenté dans le premier liens que j'ai mis.

ensuite tu peux par exemple, détruire la session au bout de 10mn d'inactivité.
Ajouter un commentaire
Réponse
+0
moins plus
je comprends pas tout...
si la session est créée, c'est parce qu'elle a été appelée par un utilisateur qui s'est identifié, donc elle est TOUJOURS "connected", non ?

ensuite, comment tu désactives la création d'un cookie ? dès l'appel de session_start(), un cookie est créé dans ton navigateur, no ?
Ajouter un commentaire
Réponse
+0
moins plus
heuuuu .... nan, il y as pas de cookie avec une session, un session c'est comme son nom l'indique, une session utilisateur, chaque connexions à sa propre session ( sauf si il y as vole de session, voilas le pourquoi du jeton ).

tape "session php" sur google tu trouveras pas mal d'info dessus, je suis désolé je suis en train de taffer donc pas trop motivé pour te faire tout un résumé ^^
Ajouter un commentaire
Ce document intitulé « Duplication de cookie & sécurité » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?