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 :

[Sécurité] interdire l'ouverture de 2 sessions simultanée d'un compte


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 142
    Par défaut [Sécurité] interdire l'ouverture de 2 sessions simultanée d'un compte
    Bonjour à toute l'équipe,

    j'ai un petit problème, je souhaite interdire l'ouverture simultanée de deux sessions du même compte. j'ai prévu alors une table Tsession là où je stockerai l'ID de l'utilisateur et la date/heure connexion et puis après la date/ heure de déconnexion.

    le problème qui se pose maintenant c'est : si l'utilisateur ferme son browser sans avoir être déconnecté je n'ai pas moyen d'écrire dans la base de données l'heure de déconnexion donc bug à la prochaine connexion du même utilisateur qui sera considéré comme toujours connecté !!

    quelqu'un aurait une solution à me proposer ? moi j'ai pensé à désactiver/cacher le bouton "fermeture" du navigateur, ce qui semble impossible sauf si on me prouve le contraire.

    Merci d'avance a tout le monde.

  2. #2
    Expert confirmé 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
    Par défaut
    Quel est l'intéret fonctionnel d'empecher l'ouverture de deux connexions pour un meme compte ?

    Sinon je confirme, tu ne peux pas cacher le bouton fermeture du navigateur... encore heureux ! Et quand bien meme c'était possible tu peux pas empecher la panne de courant

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 142
    Par défaut
    salut Mr N,

    Merci pour ta réactivité et pour ton aide. sinon j'aimerai empêcher la connexion simultanée du même compte pour des raisons de sécurité.

    t'as raison ça m'aurais étonné si Microsoft nous aurait permi ceci . Sinon y aurait-il un moyen de détecter cet évenement ( fermeture du browser) , mieux encore , de détécter la destruction de la session comme ce que l'on trouve en .Net ( la procédure session_end() ) ??

    merci encore une fois.

  4. #4
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    je ne comprends pas
    il n'y a pas deux sessions

    si ton utilisateur ferme son navigateur et le réouvre la session est perdue. il en ouvre donc une autre.

    s'il ferme sa fenêtre mais pas son navigateur et qu'il la réouvre il est toujours dans la même session.

    si ton problème est de savoir si ton utilisateur doit s'authentifier c'est simple s'il a une session il est déjà connu et ne doit pas s'authentifier. tu peux ajouter la condition la session existe et ne contient pas de déconnexion.

    mais jamais il peut y avoir deux sessions

    A+JYT

  5. #5
    Expert confirmé 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
    Par défaut
    Citation Envoyé par loukili81
    Merci pour ta réactivité et pour ton aide. sinon j'aimerai empêcher la connexion simultanée du même compte pour des raisons de sécurité.
    Mais encore ? Je ne vois pas le problème...

  6. #6
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Tu peux éventuellement mettre un timeout sur ta table : si la session est ouverte depuis plus de 5 minutes sans action, tu vides la table.

    Sinon tu parcours l'ensemble des sessions lors de la connexion, et tu vérifies que l'utilisateur n'est pas déjà présent (en adaptant la durée des sessions à ton besoin).

    Ou encore, 3ème solution, en cas de coupure de courant ou autre, l'utilisateur peut demander un reset de toutes les sessions qui lui sont reliées. Mais ça permettrait à un 2è utilisateur avec les identifiants de remplacer manu militari le premier.

    Citation Envoyé par loukili81
    Bonjour à toute l'équipe,

    j'ai un petit problème, je souhaite interdire l'ouverture simultanée de deux sessions du même compte. j'ai prévu alors une table Tsession là où je stockerai l'ID de l'utilisateur et la date/heure connexion et puis après la date/ heure de déconnexion.

    le problème qui se pose maintenant c'est : si l'utilisateur ferme son browser sans avoir être déconnecté je n'ai pas moyen d'écrire dans la base de données l'heure de déconnexion donc bug à la prochaine connexion du même utilisateur qui sera considéré comme toujours connecté !!

    quelqu'un aurait une solution à me proposer ? moi j'ai pensé à désactiver/cacher le bouton "fermeture" du navigateur, ce qui semble impossible sauf si on me prouve le contraire.

    Merci d'avance a tout le monde.

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 142
    Par défaut
    je réexplique mon problème à ceux qui le voient pas encore ( guidav lui je pense qu'il a compris ). en effet, le problème n'est pas un problème de session qui n'est pas détruite à la fermeture de ma fenêtre.

    quand un user s'authentifie, j'écris dans ma table ( Tconnexion par exemple) la date et heure de connection. si le même user veut se connecter simultanément depuis un autre poste avec son compte, je devrai refuser l'ouverture de la 2ème session car une session est ouverte et non encore fermée( date et heure fermeture connexion non encore renseignée dans ma BDD).

    imaginons maintenant que mon user ne se déconnecte pas et qu'il se contente de fermer sa fenêtre. mes variables de sessions seront détruites , je le sais, mais à sa prochaine connexion il sera interdit d'accès puisque considéré comme connecté ( vu que dans ma BDD j'aurais pas écrit les infos concernant sa déconnexion).

    j'espère que c'est plus claire là.

    sinon pour ta réponse guidav

    Tu peux éventuellement mettre un timeout sur ta table : si la session est ouverte depuis plus de 5 minutes sans action, tu vides la table.
    quand tu dis sans action ça veut bien dire que l'utilisateur reste inactif ? si c'est le cas, est ce que ceci restera valable quand le user ferme sa fenêtre ? bon je vais devoir tester peu être...

  8. #8
    Expert confirmé 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
    Par défaut
    Quel est le problème de sécurité soulevé par le fait d'avoir deux connexions différentes sur un même compte ?

  9. #9
    Membre émérite Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Par défaut
    Je ne vois pas vraiment le probleme non plus.

    Tu peux stocker le session id dans la table user pour chaque utilisateur lors de la connexion et verifier a chaque page que le session_id en cours correspond a celui dans la table, si c faux tu deconnecte l'utilisateur.
    http://hk2.php.net/manual/en/function.session-id.php

  10. #10
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    je ne vois pas non plus car il ne peut pas y avoir deux connexion dans ce cas

    soit le client à fermé son navigateur et la session est close

    soit il ne l'a pas fermé et il est toujours connecté à sa session

    je ne vois vraiment pas ce qu'il y a d'anormal à ça.

    la connexion étant fermé à chaque page il est normal que lorsque le client reviens sans avoir fermé son navigateur il retrouve sa session

    à la rigueur mettre un délai qui dit que la session expire au bout d'un certain temps d'inactivité. mais à part emmerder le client ça n'ajoute pas de sécurité.

    pour moi si la session est ouverte et que le client arrive sur la page de login
    deux solution soit tu ferme la session en cour et tu lui présente le formulaire de login
    soit tu lui envois un message comme quoi il est déjà connecté.
    et c'est tout

    pour l'accès à toutes les autres page à partir du moment où le gars à une sessions c'est juste une question de permissions à gérer

    A+JYT

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/07/2018, 11h01
  2. [Sécurité] taux d'ouverture des emails d'une news
    Par renaud26 dans le forum Langage
    Réponses: 14
    Dernier message: 09/11/2006, 00h44
  3. Limiter les tentatives d'ouverture d'une session linux
    Par steven51 dans le forum Administration système
    Réponses: 3
    Dernier message: 25/04/2006, 08h50
  4. Réponses: 4
    Dernier message: 16/03/2006, 21h22
  5. [Win XP] Pb d'affichage à l'ouverture d'une session
    Par duboisfa dans le forum Windows XP
    Réponses: 3
    Dernier message: 16/03/2006, 17h50

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