|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : avril 2006 Messages : 38 ![]() |
Bonjour,
Je suis en train de developper une application permettant de gérer des listes de médias (musique ou vidéo). Pour simplifier, nous pouvons assimiler son fonctionnement à un forum (vu qu'on retrouve le principe). J'ai un système permettant aux internautes de s'enregistrer. Mon problème se pose au niveau de la gestion des sessions. En effet, plusieurs cas se proposent à moi : 1. Utiliser les sessions implantées directement par PHP. C'est la solution qui semble la plus simple à implanter, mais qui posent certains problèmes aussi. D'une part, il y a des problème de sécurité (car les sessions sont souvement sauvegardé dans un dossier temporaire, accessible à plusieurs personnes, sur un hebergement mutualisé). Et surtout, pas vraiment pratique pour afficher le nombre et la liste des personnes actuellement connectées... 2. Une autre solution serait d'utiliser les sessions implantée par PHP, et de rajouter un fichier listant les personnes actuellement connectées (par exemple, un fichier contenant array avec les membres connectés). Mais, si ce fichier est modifié par plusieurs personnes en meme temps, il risque peut etre d'y avoir des conflits d'écriture... Et puis, cela ne résout pas le problème de "sécurité". 3. Une autre solution serait de passer par les bases de données... Beaucoup de forum utilisent ce principe après tout, mais ça reste un peu lourd quand même, je trouve... Et si on choisi d'utiliser une table de type HEAP, c'est beaucoup plus rapide, mais on se prive aussi de champ de type TEXT (pour sauvegarder des données en sessions, par exemple). 4. Enfin, une autre solution serait de réinventer la roue, et de créer mon propre système de session par fichier texte, comme je le veux. Mais là encore, il risque peut etre d'y avoir des conflits entre les fichiers si le site est beaucoup visité... Je ne sais pas si cela expose très clairement le problème qui se pose, problème auquel je ne sais pas du tout répondre à l'heure actuelle... Avez vous une solution miracle, une piste, ou un lien pouvant m'aider ? Je précise que cette application sera probablement redistribuée, donc je n'ai pas vraiment accès à la configuration du serveur qui va l'héberger. Merci d'avance. |
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Inscription : septembre 2005 Messages : 714 ![]() |
Simple...
NE PAS réinventer la roue. Utiliser les variables de session pour les informations de sessions. De plus, de toute façon tu as une base de données des utilisateurs donc tu utilises cette BD pour enregistrer et voir qui est en ligne.
__________________
Avant de poster : FAQ, tutos, rechercher, google, ... Après : ![]() Merci |
|
00
|
|
|
#3 |
|
Membre expérimenté
![]() Inscription : mai 2002 Messages : 673 ![]() |
+1
- Les sessions pour les variables relatives à la navigation de chaque utilisateurs. - La base de donnée ou tu mets un champs last_access int(11) dans ta table utilisateur et que tu réinitialise a time() a chaque chargement (ou lorsqu'il est < time - X). Tu regardes ensuite qui s'est connecté depuis moins de X minutes pour savoir qui est en ligne. |
|
|
00
|
|
|
#4 |
|
Futur Membre du Club
![]() Inscription : avril 2006 Messages : 38 ![]() |
Oui, c'est une solution, mais ça ne résout pas mon problème de sécurité. Au début, je pensais tout simplement changer le dossier d'enregistrement des sessions, mais d'après ce que j'ai pu entendre, certains serveurs ont désactivé la fonction session_save_path()... Vous confirmez ?
|
|
|
00
|
|
|
#5 |
|
Membre expérimenté
![]() Inscription : mai 2002 Messages : 673 ![]() |
ah ça, de toute façon, libre a l'hébergeur d'activer / désactiver ce qu'il veut...
Pris comme ça, certains hébergeur peuvent également t'interdire d'écrire dans un fichiers via un script PHP... EDIT : Pour ce qui est de la sécurité, de toute façon, ne te prend pas la tête, tu seras dépendant de ce que propose l'hébergeur quoiqu'il arrive. Si tu veux de la sécurité, il te faut un hébergement privé voir dédié, auquel cas, c'est toi et toi seul qui parrametrera l'ensemble du serveur. Tu n'auras plus alors à te préocuper de la sécurité au niveau de tes sessions, des droits d'accès à ton fichiers ou des autres domaines hébergés sur le serveur. Tu veux de la vrai sécurité -> serveur dédié/privé + cookies + BDD |
|
|
00
|
|
|
#6 |
|
Futur Membre du Club
![]() Inscription : avril 2006 Messages : 38 ![]() |
Il y a sécurité et sécurité aussi...
Mais disons que si le dossier d'enregistrement des sessions est accessible par plusieurs personnes, il devient alors très simple de modifier ces sessions pour se faire passer par un administrateur ou autre... plutôt génant tout de même... |
|
|
00
|
|
|
#7 |
|
Membre expérimenté
![]() Inscription : mai 2002 Messages : 673 ![]() |
Je t'avous que je ne sais pas du tout comment c'est fait ces fichiers, mais ça me surprendrais quelque peut du PHP que n'importe qui puisse acceder à ça sans problème...
Le hack serait beacoup trop facile, il suffirait pour hacker un site d'ouvrir un hébergement sur le même serveur que sa cible... Enfin bon... |
|
|
00
|
|
|
#8 | |
|
Futur Membre du Club
![]() Inscription : avril 2006 Messages : 38 ![]() |
A vrai dire, cette crainte s'appuie essentiellement sur cette phrase :
Citation:
De même, on retrouve la même idée sur : http://phpsec.org/projects/guide/fr/5.html |
|
|
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2006 Messages : 11 ![]() |
pas mal le coup des sessions sauvegardés sous mysql
mais ca ouvre un autre problème : que se passe t il si l'utilisateur obtient malicieusement le controle des bases mysql ? il a tout a coup accès aux infos de sessions non ? Donc on a un avantage c'est de limiter la casse par le php mais ca augmente le risque au niveau mysql il me semble ... il est primordial d'avoir safe_mode à off dans tous les cas. et phpsuexec (mod_suphp) ca limite grandement les risques d'intrusion dans des fichiers qui n'appartiennent pas à l'utilisateur en question (pratique quand on a des dizaines de virtualhosts différents) |
|
|
00
|
|
|
#10 |
|
Futur Membre du Club
![]() Inscription : avril 2006 Messages : 38 ![]() |
Oui. Mais le problème est que je n'ai pas vraiment accès à la configuration du serveur, vu que c'est un script qui sera redistribué.
|
|
|
00
|
|
|
#11 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2006 Messages : 11 ![]() |
si tu implémentes :
1/ sessions par cookies (session.use_only_cookies) 2/ chiffrage SSL 3/ crypter les infos et mots de passes de sessions en md5 par exemple je pense que tu ne devrais pas trop avoir de problème de sécurité
|
|
|
00
|
|
|
#12 |
|
Futur Membre du Club
![]() Inscription : avril 2006 Messages : 38 ![]() |
Sauf que pour ça, encore faut il avoir accès à la configuration du serveur
Donc ça ne répond pas vraiment à la question |
|
|
00
|
|
|
#13 |
|
Membre expérimenté
![]() Inscription : mai 2002 Messages : 673 ![]() |
Tu te prend la tête pour un problème insoluble là ! si t'as pas accès à la conf du serveur, tu peux pas controlé la sécurisé !
Fais ton boulot de programmeur, et laisse faire les hébergeurs le leur, quitte a fournir un readme avec ton appli... |
|
|
00
|
|
|
#14 |
|
Futur Membre du Club
![]() Inscription : avril 2006 Messages : 38 ![]() |
Insoluble, pas tant que ça...
En fait, ma question a été deformée au fil des réponses. Ce que je souhaite savoir, c'est le risque réel que présente la sauvegarde des sessions dans un repertoire temporaire commun à plusieurs webmaster. A vrai dire, j'ai du mal à croire que modifier les sessions soit aussi simple à faire que le laisse entendre les liens donné précedement, sur un serveur normalement configuré... Je voulais donc avoir plus de renseignement pour savoir ce qu'il en était réellement, et pour savoir si la sauvegarde des sessions en bdd était vraiment justifié. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com