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

Servlets/JSP Java Discussion :

HttpSession login pwd et serializable


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de r1-1024
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 138
    Par défaut HttpSession login pwd et serializable
    Bonjour,
    Afin d'éviter de faire n'importe quoi avant d'utiliser l' HttpSession, g qq questions.

    -HttpSession fonctionne via les cookies, et identifie donc une session (id) avec un navigateur. Comment peut on vérifier que l'utilisateur autorise la création de cookies ?

    -Qd un utilisateur se log (login+pwd) qu'est ce que je dois enregistrer dans le HttpSession pour l'identifier de façon sure ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //A bannir
    session.setAttribute("login","Dupont");
    session.setAttribute("pwd","secret");
    -Si qq'1 accède à ses cookies, comment éviter qu'il usurpe son identité si le
    HttpSession du servlet est toujour valide ?
    En particulier si je sauvegarde l'id de l'utilisateur dans l'HttpSession.

    -Comment peut on changer dynamiquement le temps de validité d'une session ?

    -Les attributs de HttpSession ne sont pas "serializable". HttpSession et tous les objets mappés sont ils sauvegardé en RAM. Si tel est le cas comment éviter un OutOfMemory sur le servlet ?

    Merci

  2. #2
    Membre confirmé Avatar de r1-1024
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 138
    Par défaut
    -Qd un utilisateur se log (login+pwd) qu'est ce que je dois enregistrer dans le HttpSession pour l'identifier de façon sure ?
    Les attributs HttpSession restent côté serveur donc pas de pb.

    -Comment peut on changer dynamiquement le temps de validité d'une session ?
    HttpSession.setMaxInactiveInterval()

    -Les attributs de HttpSession ne sont pas "serializable". HttpSession et tous les objets mappés sont ils sauvegardé en RAM. Si tel est le cas comment éviter un OutOfMemory sur le servlet ?
    Il faut limiter le nombre d'attributs en RAM (sinon enregistrer les attributs en BD et les libérer avec un HttpSessionListener).

    Le HttpSession sert-il à enregistrer les produits achetés sur un site marchand ?
    Que se passe t-il si 1000 clients mettent dans leur cadi 1 million de produits ?

    -Si qq'1 accède à ses cookies, comment éviter qu'il usurpe son identité si le
    HttpSession du servlet est toujour valide ?
    En particulier si je sauvegarde l'id de l'utilisateur dans l'HttpSession.
    L'id utilisateur ne sera pas accessible dans le cookie (puisqu'il reste côté serveur).

    Mais effectivement on peut usurper l'identité d'un utilisateur une fois qu'il est connecté.

    Alors voilà la question qui peut faire mal :
    Comment le jsessionid est il généré ?

    En d'autre termes est il possible de faire :
    -je me connecte sur une boîte mail très connue.
    -j'identifie la techno du serveur (comment est généré l'id & le cookie)
    -je me déconnecte
    -je change l'id dans le cookie (connaissant la techno je peux trouver un id valide, comme le FAM est très connu g de grande chances de tomber sur un id de session active)
    -je me reconnecte
    -je suis connecté sur le compte de qq'1 d'autre sans connaître son pwd.



    -HttpSession fonctionne via les cookies, et identifie donc une session (id) avec un navigateur. Comment peut on vérifier que l'utilisateur autorise la création de cookies ?
    Je ne sais toujours pas.

    Le but de tout ça étant de faire qq chose de sérieux.

  3. #3
    Membre confirmé Avatar de r1-1024
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 138
    Par défaut
    Effectivement le HttpSession n'est absolument pas sécurisé

    Pour ceux que ça intéresse:
    -On peut modifier les cookies de firefox dans le fichier sessionstore.js (évidement ça suffit pour trapper le HttpSession)
    -Dans tomcat, les sessionids sont générés dans org.apache.catalina.session.ManagerBase.generateSessionId()
    -Visiblement gmail rajoute des cookies certifiant l'id de session afin d'éviter l'usurpation (à vérifier plus sérieusement).

    Si qq'1 à du retour sur les cookies servant à certifier un id de session, j'suis preneur.

    En regardant mes cookies j'me suis aperçu que sur certain sites (c pas toujours le cas) j'ai un cookie UID (User ID) et un autre SID (Session ID).
    Mais pas de signature certifiant les deux ?

    Merci pour votre aide.

  4. #4
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Bonjour,

    Citation Envoyé par r1-1024 Voir le message
    -HttpSession fonctionne via les cookies, et identifie donc une session (id) avec un navigateur.
    Tu peut aussi passer par HttpServletResponse.encoreUrl() au cas ou le client ne supporte pas les cookies.

    Citation Envoyé par r1-1024 Voir le message
    Que se passe t-il si 1000 clients mettent dans leur cadi 1 million de produits ?
    BOOM

    Le mieux en terme de sécurité est tout de même de faire confiance à ce qui existe déjà.
    JAAS ? :p

  5. #5
    Membre confirmé Avatar de r1-1024
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 138
    Par défaut
    Hello,

    encodeURL me renvoie l'url encodée avec le session id. Il faut que je transforme toutes les urls de mes pages à la mano ?

    Dans la jdoc il est spécifié :
    For robust session tracking, all URLs emitted by a servlet should be run through this method. Otherwise, URL rewriting cannot be used with browsers which do not support cookies.
    Ca veut dire qu'on devrait le faire pour toutes les URL
    Ca alourdi vachement le code. Mais si c'est ce qu'il faut faire...

    De plus, comme je le disais plus haut, il faut absolument ajouter un UID en plus du SID (ou jsessionid) afin d'éviter une usurpation d'utilisateur une fois que le client s'est identifié.

    J'pense alors qu'il faudrait s'inspirer d'une implémentation de encodeURL pour y rajouter le UID.

    Merci pour l'info.

    BOOM
    C'est bien ce que je pensais. Certains sites utilisent le HttpSession de façon abusive.

    Le mieux en terme de sécurité est tout de même de faire confiance à ce qui existe déjà.
    JAAS ? :p
    J'adore ce genre d'infos.
    Merci

    Voilà un petit lien qui va probablement clore la discussion.
    http://www.developpez.net/forums/d32...cation-tomcat/

    Sinon pour le check des cookies (activation dans le navigateur), j'imagine qu'i faut faire un petit truc en javascript

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/06/2012, 15h45
  2. fichier plats pour stocker des couples login/pwd
    Par riadhhwajdii dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 01/12/2009, 15h34
  3. Authentification (login/pwd) avec Axis
    Par progamer54 dans le forum Services Web
    Réponses: 1
    Dernier message: 28/10/2009, 14h19
  4. Réponses: 6
    Dernier message: 27/10/2005, 15h07

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