Java session sécurisée
Chaque fois que vous authentifier, votre application doit changer l'identifiant de la session qu'il utilise. Cela permet d'empêcher quelqu'un de mettre en place une session, la copie de l'identifiant de session, puis incitant un utilisateur à l'aide de la session. Parce que le pirate sait déjà que l'identifiant de session, ils peuvent l'utiliser pour accéder à la session après que l'utilisateur se connecte, en leur donnant un accès complet. Cette attaque a été appelé "fixation de session", entre autres choses. Comment puis-je changer l'id de session une fois le login de l'utilisateur pour le système ?
- Est-il une raison pour laquelle vous avez demandé cette fois? stackoverflow.com/questions/1138436/...
- oui je ne peux pas ajouter le commentaire et la réponse au message
Vous devez vous connecter pour publier un commentaire.
Vous êtes encore sur le serveur pendant que vous invalider la session.
Obtenir l'existant; l'invalider; en créer un nouveau ...
1) Obtenir de la Session en cours avec HttpServletRequest.getSession();
2) Effacer la Session HttpSession.invalidate();
3) Créer un nouveau: HttpServletRequest.getSession(true);
Parler en général (parce que ce n'est pas un Java problème à tous, c'est un web en général problème) de fixation de session se pose lorsque l'Id de session sont facile à découvrir, ou de deviner. La principale méthode d'attaque est lorsque l'ID de session est dans l'URL d'une page, par exemple http://example.com/index?sessionId=123. Un attaquant pourrait configuration de la capture d'une session, et ensuite intégrer le lien de leur page, incitant un utilisateur à visiter et de devenir une partie de leur session. Ensuite, lorsque l'utilisateur s'authentifie la session est authentifié. Les mesures d'atténuation pour ce qui est de ne pas utiliser l'URL en fonction des Identifiants de session, mais au lieu d'utiliser des cookies
Certaines applications web va utiliser un cookie de session, mais est définie à partir de l'URL initiale, par exemple en visitant http://example.com/index?sessionId=123 permettrait de voir l'id de session dans l'url, puis créer un cookie de session à partir d', un réglage de l'identifiant dans le cookie de session à 123. Les mesures d'atténuation pour ce qui est de générer des identifiants de session sur le serveur sans utiliser la saisie de l'utilisateur comme une graine dans le générateur.
Il y a aussi le navigateur basé sur les exploits où un mal codé navigateur accepte cookie création pour les domaines qui ne sont pas du domaine d'origine, mais il n'y a pas beaucoup que vous pouvez faire à ce sujet. Et Cross Site Scripting attaques où vous pouvez envoyer une commande de script dans l'attaqué site pour définir le cookie de session, qui peut être atténué par la mise en au cookie de session HTTP_ONLY (bien que Safari ne permet pas en l'honneur de ce drapeau)
Pour Java la recommandation générale est
Cependant à un point sur JBoss ce n'était pas le travail - si vous avez besoin de vérifier cela fonctionne comme prévu à l'intérieur de votre cadre choisi.
Invalider la session en cours et d'obtenir une nouvelle session: