IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] Système de gestion de donnée


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut [Système] Système de gestion de donnée
    Bonjour/Bonsoir à vous, et dores et déjà merci de me lire.

    Introduction de l'idée :
    Tout d'abord, tout le monde connait l'utilisation des sessions, elles sont là, essentiellement pour transférer des données de page en page.
    On peut les stockées par deux moyens :
    1. Directement dans la super globale $_SESSION[];
    2. Dans une base de donnée

    Admettons maintenant que le passage du SESSID est plus sécurisé par cookie que par URL. Ces deux moyens de stockages vont donc repérer l'utilisateur qui leur est liés par le moyen de ce dernier. Il y aura deux SESSID, un, soit dans un fichier du serveur, soit dans la base de donnée, puis le deuxième dans le cookie.

    Le problème :
    Le problème est tout simple, si l'utilisateur n'accepte pas les cookies. Que ce passe-t-il pour lui ? Il n'a pas accès à la totalités des données. Il y a toujours le moyen de passé le SESSID par l'url, mais comme j'ai admis le faite que cela soit moins sécurisé que par le cookie, je n'envisage pas cette solution. J'ai donc "essayé" de réfléchir à un moyen qui va me permettre de transmettre des données sans pour autant créé quoi que ce soit sur l'ordinateur du visiteur, ni même sur mon espace disque.

    L'idée :
    J'ai donc penser à un système de gestion de donnée via une base de donnée (dans un sens, c'est fait pour cela ^_^).
    J'aurais donc une table qui ressemble fortement à celle de la gestion de session. Ce qui me dérange c'est de devoir créer un cookie, il ma donc fallu penser à un système pour généré un id qui soit à la fois unique pour chaque visiteur, et que les données puissent lui être attribuer sans aucun souci.
    J'ai donc trouvé une solution qui divise le problème de moitier. Je génère un id unique (à 100%) si cette personne est connecté au site qui est basé sur son id d'enregistrement et son login, il m'est donc facilement possible de récupérer cette id de page en page. En d'autre terme, une personne qui est inscrite, et qui se connecte, n'aura aucun problème pour naviguer.
    Mais un site ne doit, normalement, jamais négliger les visiteurs qui pourrait devenir de futur membre (et les autres en général). J'ai donc penser à créer un id constant = à -1 (ça aurait pu être - X). Il fallait que cette id soit constant pour que je puisse le retrouver et donc créer un lien entre les données de la base de donnée et le visiteur. Or, vous vous en doutez, et c'est la première chose que je me suis dit ... Il y a une noisette dans le potage (tout de suite plus classe ^_^). Si cette id est constant à tous les visiteurs ... les données seront, par conséquent, constantes à tous les visiteurs.

    Il ma donc fallu penser à un autre système, j'ai donc trouvé une nouvelle idée, celle de généré l'id, pour les visiteurs, par rapport à l'IP de ce dernier.
    J'ai donc "essayé" de me renseigner sur :
    • La durée de vie d'une IP
    • Les IP "communes"

    Or je n'ai trouvé que très peu d'information valable (Le simple mot IP dans google attire tous les sites à la noix -_-).

    Votre aide :
    Si vous le pouvez :
    • Une critique argumentée (Dire que c'est le mal, je veux bien, et je préfère peut-être même à dire que c'est bien, mais j'aimerai comprendre votre point de vue ^_^) de mon "idée"
    • Des données fiable sur les IP
    • Une meilleur idée que celle que j'ai eu pour les visiteurs lambdas.

    Je n'ai pas penser si c'était sécurisé ... je pense que oui, mais si vous pensez le contraire, faite le moi savoir ^_^.


    Voilà,
    merci de m'avoir lu,
    Cordialement,
    SpiritOfDoc.

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    En terme de sécurité, quelle est la différence entre :
    - SESSID, unique, généré alétoirement, passé dans chaque requête
    et
    - ton id, unique, généré aléatoirement, passé dans chaque requête

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Aucune, et j'ai surement dû mal m'exprimer.

    Je génère l'id de "session" via l'id et le login pour pouvoir le retrouver et donc faire une liaison entre les données stockés dans la table et l'utilisateur stocké dans une autre table.
    Je pourrais faire un md5(rand(uniqid())) qui me générerai un id tout aussi unique, mais dans ce cas je serais dans l'incapacité de faire la liaison :
    Données <=> Utilisateur.

    J'ai justement fait ceci pour éviter d'utiliser des cookies !

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Ce qui veut dire que si je connais l'id d'un utilisateur et son login => je peux générer le pseudo sessid ?
    Ce qui veut dire aussi que comme c'est reversible, je peux (en regardant dans l'historique de l'utilisateur si j'ai accès à son pc, ou en sniffant le reseau ou plus simplement si l'utilisateur m'envoie un lien qui contient l'id) renvoyer l'id de quelqu'un d'autre afin de me faire passer pour lui ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Pour la première, oui.
    Encore faut-il savoir comment cette id est généré (il est, serte, basé sur l'id et le login, et si ça fonctionne mon idée pour l'IP, avec l'IP en plus, mais la méthode dont ceci est crypté n'est pas un simple md5() ^_^)
    Mais c'est un risque potentiel en effet.

    L'ID sera généré, puis servira à la récupération des données, puis détruite. Aucune chance de la récupérer (sans passer par la base de donnée).

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Points : 120
    Points
    120
    Par défaut
    Mais sans utiliser les cookies du coté du client, comment feras tu pour stocker chez celui-ci son ID et son login ? car il devra te les renvoyer à chaque page ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Citation Envoyé par bigben99
    Mais sans utiliser les cookies du coté du client, comment feras tu pour stocker chez celui-ci son ID et son login ? car il devra te les renvoyer à chaque page ?
    J'ai trouvé un moyen et je suis actuellement en train de tester si ceci ne comporte pas trop de faille ... et le cas échéant de les corrigés si c'est possible.

    Bien sur mon projet, si ce que j'ai trouvé ne s'avérait pas sécurisé, s'arrêterait net ici ^_^.

  8. #8
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par SpiritOfDoc
    Encore faut-il savoir comment cette id est généré (il est, serte, basé sur l'id et le login, et si ça fonctionne mon idée pour l'IP, avec l'IP en plus, mais la méthode dont ceci est crypté n'est pas un simple md5() ^_^)
    Si tu m'assures que le projet ne sera developpé que par toi ou par quelqu'un de confiance et qu'il ne tombe pas dans le domaine public... Ok sur le fait qu'il va être difficile de générer manuellement l'id

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Que par moi, et le projet je ne suis même pas sur de le finir, c'est juste pour passer le temps ...

    Mais si tu as d'autres idées pour pouvoir gérer des données sans créer quoi que ce soit chez l'utilisateur, je suis preneur ^_^

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Citation Envoyé par Mr N.
    Si tu m'assures que le projet ne sera developpé que par toi ou par quelqu'un de confiance et qu'il ne tombe pas dans le domaine public... Ok sur le fait qu'il va être difficile de générer manuellement l'id
    Je viens d'y penser, mais il serait toujours possible de généré l'id avec une valeur en plus propre à chaque webmaster (une constante dans le fichier de config par exemple).
    Je pense que ça peut tenir la route.

  11. #11
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Comme ça, si le webmaster en question oublie de modifier cette constante, ses membres ne seront pas en sécurité
    C'est comme ça que les pirates procèdent, ils essaient les valeurs par défaut des systèmes...

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Bien sûr ^_^, c'est pour cela que les installations automatisés existent ^_^.
    Il faudrait obligatoirement remplir ce champ pour continuer l'installation xD.

    Mais de toute façon, je ne compte pas, pour le moment, distribuer la source (vu que je compte pas forcement le finir >_<).

Discussions similaires

  1. Choix d'un système de gestion de données
    Par mortevielle dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 19/09/2014, 22h53
  2. Le choix d'un SGBD ou autre système de gestion de données
    Par lvsuno dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 27/04/2012, 11h47
  3. Réponses: 0
    Dernier message: 29/08/2011, 12h27
  4. Réponses: 5
    Dernier message: 27/05/2010, 23h27
  5. Index imbriqués. et le système interne de gestion des SGBD
    Par Alexandre T dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/03/2005, 08h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo