Question

J'ai besoin de prévenir Fixation De Session, un type particulier de détournement de session, dans une application web Java s'exécutant dans JBoss.Cependant, il semble que la norme de l'idiome ne fonctionne pas dans JBoss.Cela peut-il être contourné?

Était-ce utile?

La solution

Ce défaut (trouvé ici) montre la voie à la solution.Le Tomcat instance qui s'exécute dans JBoss est configuré avec emptySessionPath="true" plutôt que de "faux", qui est la valeur par défaut.Ceci peut être modifié dans .../deploy/jboss-web.deployer/server.xml;à la fois le HTTP et les connecteurs AJP ont cette option.

La fonctionnalité en elle-même est utilisée pour éliminer le chemin de contexte (par exemple."foo" dans http://example.com/foo) dans le cookie JSESSIONID.Paramètre à false va casser les applications qui dépendent de la croix-authentification de l'application, qui comprend des trucs construit à l'aide de certaines portail des cadres.Il n'a pas d'incidence négative sur la demande en question, cependant.

Autres conseils

Ce problème et de la situation particulière dans laquelle il se produit un problème dans Tomcat ainsi que JBoss.Tomcat actions de la emptySessionPath="true" effet (et en fait JBoss hérite de Tomcat).

Cela semble vraiment comme un bug dans Tomcat et JBoss lorsque vous essayez d'empêcher la fixation de session attaques, mais la servlet spec (au moins la version 2.3), ne nécessite pas réellement le JSESSIONID défini ou redéfini selon toute logique spécifique.Peut-être que cela a été nettoyé dans les versions ultérieures.

Une solution de contournement consiste à stocker l'adresse du client dans la session.Une enveloppe réponse devrait valider le jeu d'adresse de client dans la session est le même que celui d'accéder à la session.

J'ai pris connaissance ci-dessous de réglage du code extrait de l'un de la forum.Et j'ai ajouté ci-dessous des lignes.Mais lorsque j'imprime l'ID de session, après et avant de vous connecter dans l'application il en est de même.Comment pourrais-je le test de Fixation de session.

  1. D:\jboss-5.1.0.GA\bin un.cof fichier et ajoutez la ligne ci-dessous.set "JAVA_OPTS=%JAVA_OPTS% -Dorg.apache.catalina.connecteur.Demande.SESSION_ID_CHECK=false"

  2. dans chaque context.xml des applications jboss.D:\jboss-5.1.0.GA\server\default\deploy\jbossweb.sar\context.xml

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top