Printemps de Sécurité de session-session de gestion de fixation et la protection ne fonctionne pas
Je suis à l'aide de Printemps 3.1 Sécurité. Voici la partie de mon "spring-security.xml"
<session-management session-fixation-protection="migrateSession">
<concurrency-control max-sessions="1" expired-url="/Login.html"/>
</session-management>
Si j'ai mis session-fixation-protection="migrateSession"
encore si je me suis connecté à l'aide de "Chrome", puis copier valeur du cookie et ouvrir un "Navigateur Firefox" et accédez à la page de connexion, puis modifier le cookie et de le coller la valeur de "Chrome", puis je vois que je suis connecté sur mon application. Que signifie "attaque de fixation de session", c'est possible !!!
Ai-je raté quelque chose dans mon printemps de sécurité config ?
C'est juste mon cofig fichier
<http auto-config="false" access-denied-page="/" disable-url-rewriting="true">
<intercept-url pattern="/test01*" access="ROLE_USER" requires-channel="https"/>
<intercept-url pattern="/test02*" access="ROLE_USER" requires-channel="https"/>
<form-login login-page="/Login.html"/>
<logout invalidate-session="true"
logout-success-url="/"
logout-url="/logout"/>
<session-management session-fixation-protection="migrateSession">
<concurrency-control max-sessions="1" expired-url="/Login.html"/>
</session-management>
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="a" password="a" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
- Akash, Avez-vous écrit UserPrincipal et UserPrincipalImpl classes?
- nop je n'ai pas écrit UserPrincipal et UserPrincipalImpl classes.
- Post une certaine partie de votre code, afin que nous puissions vous aider
- Comme je l'ai dit ci-dessous, vous devez avoir un seul
<session-management>
élément, mais c'est une autre question.
Vous devez vous connecter pour publier un commentaire.
Si vous avez copié le cookie après vous vous êtes connecté (comme vous l'avez dit), alors ce n'est pas une session-attaque de fixation (au moins pas de la sorte, nous nous protégeons contre). Le point est que le témoin des changements lorsque vous vous connectez, de sorte que personne d'autre ne peut accéder à votre compte. Si vous voulez arrêter quelqu'un de la fixation d'une session qui est déjà connecté à son compte, alors que c'est une question différente et n'est pas quelque chose qui peut facilement être protégés contre de cette façon.
Aussi, vous ne devriez pas avoir besoin de définir cet attribut est activé par défaut. Et il suffit d'utiliser une
<session-management>
élément.C'est à cause que vous avez fourni,
session-fixation-protection="migrateSession"
. C'est la session de navigateur google Chrome est copié dans le navigateur Firefox de la session. Aussi, il est de journalisation dans la 2ème fois en même temps qui ne le devrait pas. Ce pourrait être parce que, si vous avez fourni votre propreUserPrincipal
etUserPrincipalImpl
les classes, vous devez remplacer l'Objet duequals()
ethashCode()
méthodes. Essayer de prendre le contrôle de simultanéité de travail.Également consulter ma question.