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 :

Question sur la sécurité des sessions


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Points : 760
    Points
    760
    Par défaut Question sur la sécurité des sessions
    Bonjour,

    je me pose une question depuis quelques jours, et je me dois de trouver une réponse.

    J'ai un site php utilisant des sessions pour garder les infos des utilisateurs sous cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $_SESSION['USER'] = array (
    id =>// id de l'user
    email => //email crypter de l'user
    password => //mdp crypter de l'user
    //.....
    );
    Ces infos sont les infos extraites de la BDD.

    Je me demandais si il n'était pas préférable d'un point de vu sécuritaire, d'utiliser un id de session unique, enregistré en BDD et qui récupérerai les info user en BDD à chaque changement de page via ma class user.
    Je pensais à un id contenant l'IP et un numéro unique, le tout crypter.


    Qu'en pensez vous ?

    Auriez-vous des astuces afin de sécuriser au mieux mes connexions ?


    Merci d'avance.

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Les données de sessions sont stockées sur le serveur et non chez le client.
    Donc les données sont en principe à l'abris (sous réserve que le serveur soit configuré correctement)

    D'un point de vue purement technique , il sera plus difficile d'aller lire le fichier session sur le serveur que d'intercepter une requête sql envoyée à un serveur distant.

    Le problème des sessions PHP c'est l'id de session qui peux éventuellement être trouvé et donc la session volée.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Ce qui est sûr et certain, c'est qu'il ne faut pas y mettre des données sensibles comme le mot de passe !

    id, nom, prénom, email. C'est tout.

    Pour le reste, à récupérer au cas par cas dans la BD (grâce à l'id).

  4. #4
    Membre éclairé Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Points : 760
    Points
    760
    Par défaut
    Bonsoir,

    merci pour vos réponses.

    J'utilise session_regenerate_id(); pour renouveler l'id de session, est-ce suffisant ?

    Y'a t'il une méthode afin de sécuriser au mieux une session ?


    Je vais déjà modifier les infos en sessions, et y ajouter l'IP afin de fermer la session en cas de changement?


    Merci.

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Citation Envoyé par Geoffrey74 Voir le message
    J'utilise session_regenerate_id(); pour renouveler l'id de session, est-ce suffisant ?
    Seul non , ça n’empêche pas qu'on peux essayer de "deviner" un id de session et éventuellement tombé sur un qui existe ou même extraire l'id de session via une faille xss.
    Par contre le coupler avec d'autres mécanisme de sécurité oui (changement d'ip, durée de session, etc ...)

    Quelques articles/codes intéressants sur le sujet :

    http://php.net/manual/fr/session.security.php
    https://paragonie.com/blog/2015/04/f...e-php-sessions
    https://github.com/ezimuel/PHP-Secure-Session
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre éclairé Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Points : 760
    Points
    760
    Par défaut
    Bonsoir,

    j'ai modifié donc suivant vos conseils.

    Mes sessions user ne contiennent que l'ID, l'IP et un timestamp.
    Passé 30min sans renouvellement, la session saute, et l'id de session est régénérer à chaque renouvellement.

    Merci pour vos conseils.


    N'hésitez pas à me reprendre si j'ai oublié quelque chose.

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/04/2015, 16h14
  2. Réponses: 4
    Dernier message: 13/06/2012, 09h58
  3. [PHP 5.3] Demande de conseil sur la sécurité des sessions
    Par renaud26 dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2010, 18h16
  4. Réponses: 5
    Dernier message: 15/09/2007, 00h02
  5. Question sur le fonctionnement des sessions
    Par kuja2053 dans le forum Langage
    Réponses: 3
    Dernier message: 26/06/2007, 18h15

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