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

Sécurité Discussion :

Peut-on faire confiance aux variables de sessions ?


Sujet :

Sécurité

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 307
    Par défaut Peut-on faire confiance aux variables de sessions ?
    Bonjour à tous,

    Je développe actuellement ma première application web et je me pose quelques questions concernant la sécurité de la session utilisateur.

    J'y stocke par exemple l'identité de l'utilisateur connecté, le projet qu'il est en train de consulter...

    Est-ce que dans mon controleur (j'utilise MVC) je peux faire totalement confiance à ces variables de sessions ?
    Est-ce que l'utilisateur pirate peut par exemple avoir modifié l'id du projet en cours de consultation ou autre... ?

    Si je ne me trompe pas la session est envoyée dans le requête HTTP ?

  2. #2
    Membre éprouvé
    Homme Profil pro
    Chef d'entreprise
    Inscrit en
    Novembre 2010
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef d'entreprise
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2010
    Messages : 94
    Par défaut
    Bonjour,

    La session n'est pas envoyée dans la requête, ce sont les cookies qui sont renvoyés au serveur et ceux-ci contiennent l'ID de session, pas la session elle-même. (On peut aussi passer par une variable GET par exemple mais en général, on utilise des cookies)

    En conclusion, l'utilisateur n'a pas accès à ces données de session. Il existe quand même un danger : un pirate peut renvoyer un cookie contenant l'ID d'une session d'un autre utilisateur. Il a alors droit, dans le cadre d'une identification, à la partie membre de cet utilisateur.

    Il existe des techniques pour contrer le session hijhacking. Par exemple, en stockant l'IP de l'utilisateur et en comparant celle-ci avec l'IP de la requête, malheureusement, cette technique pose des problèmes quand l'utilisateur change d'IP légitimement (de plus, le pirate peut aussi se débrouiller pour spoofer son IP et envoyer des paquets avec l'adresse IP légitime).
    On peut aussir changer l'ID de session à chaque requête et supprimer la session dès qu'un ID est renvoyé une deuxième fois par exemple mais ça devient compliqué.

    En règle générale, pour un site normal, il n'y a pas besoin de mettre ce genre de sécurité donc pas de soucis à se faire pour la gestion des sessions.

    Cordialement,
    Thomas Feron de LF Création.

    PS: il existe également les attaques de type session fixation qui sont dans le sens inverse, c'est le pirate qui va faire en sorte que l'utilisateur utilise une certaine session illégitime.

  3. #3
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Par défaut
    Dans tous les cas si tu souhaites une réelle sécurité il faudrait passer par une connexion https.

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 15
    Par défaut
    Dans tous les cas si tu souhaites une réelle sécurité il faudrait passer par une connexion https.
    C'est une grossière erreur de penser que l'utilisation de HTTPS résout tous les problèmes liés à la sécurité. Tout d'abord parce que cela ne permet pas de se prémunir des attaques liées aux sessions mais aussi parce que l'utilisation de l'encryption sans comprendre les tenants et aboutissants entraîne souvent de nouvelles vulnérabilités.

    La véritable difficulté concernant les vulnérabilités de session étant qu'elles sont complexes à parer puisqu'il existe de multiples vecteurs d'attaque. Il existe par contre un moyen de les limités grandement, c'est de vérifier qu'il n'y a pas de vulnérabilité de type XSS injection sur son site internet. cf : https://www.owasp.org/index.php/XSS

  5. #5
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Par défaut
    Je n'ai jamais dit que cela résolvait tout... S'il existait une sécurité ultime nous n'aurions pas matière à discuter.

Discussions similaires

  1. Accéder aux variable de session
    Par sliderman dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/02/2008, 10h53
  2. Réponses: 1
    Dernier message: 07/07/2006, 14h56
  3. Accès aux variables de session
    Par bertrand075 dans le forum Langage
    Réponses: 4
    Dernier message: 31/05/2006, 13h59
  4. Peut-on faire appel aux interruptions sous Windows ?
    Par lorenfar dans le forum Assembleur
    Réponses: 10
    Dernier message: 09/05/2005, 18h42

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