67 votes

Est-il possible de désactiver jsessionid dans tomcat servlet?

Est-il possible de désactiver jsessionid dans l'URL de tomcat? le jsessionid semble pas trop moteur de recherche convivial.

S'il vous plaît conseiller Merci

67voto

Pool Points 5127

Vous pouvez la désactiver pour les moteurs de recherche à l'aide de ce filtre, mais je conseille de l'utiliser pour toutes les réponses que c'est pire qu'moteur de recherche hostile. Il expose l'ID de session qui peut être utilisé pour certaines failles de sécurité (plus d'infos).

Tomcat 6 (pré 6.0.30)

Vous pouvez utiliser le tuckey réécriture de filtre.

Exemple de config pour Tuckey filtre:

<outbound-rule encodefirst="true">
  <name>Strip URL Session ID's</name>
  <from>^(.*?)(?:\;jsessionid=[^\?#]*)?(\?[^#]*)?(#.*)?$</from>
  <to>$1$2$3</to>
</outbound-rule>

Tomcat 6 (6.0.30 et au-delà)

Vous pouvez utiliser disableURLRewriting dans le contexte de configuration pour désactiver ce comportement.

Tomcat 7

De Tomcat 7, vous pouvez ajouter le texte suivant dans la config de session.

<session-config>
    <tracking-mode>COOKIE</tracking-mode>
</session-config>

50voto

Spektr Points 685
  <session-config>
     <tracking-mode>COOKIE</tracking-mode>
 </session-config> 
 

Tomcat 7 prend en charge la configuration ci-dessus dans votre application web web.xml, qui désactive les sessions basées sur des URL.

19voto

Doug Points 481

Il est possible de faire cela dans Tomcat 6.0 avec: disableURLRewriting

http://tomcat.apache.org/tomcat-6.0-doc/config/context.html

par exemple

 <?xml version='1.0' encoding='utf-8'?>
<Context docBase="PATH_TO_WEBAPP" path="/CONTEXT" disableURLRewriting="true">
</Context>
 

Dans Tomcat 7.0, cela est contrôlé avec les éléments suivants dans une application: ServletContext.setSessionTrackingModes ()

Tomcat 7.0 respecte les spécifications Servlet 3.0.

13voto

Andrew Duffy Points 3574

Utilisez un Filter sur toutes les URL qui englobe le response dans un HttpServletResponseWrapper qui renvoie simplement l’URL inchangée entre encodeRedirectUrl , encodeRedirectURL , encodeUrl et encodeURL .

5voto

Andreas Points 964

Citation de la Piscine de la réponse:

Vous pouvez utiliser le tuckey réécriture de filtre.

Vous pouvez désactiver il suffit de chercher pour les moteurs à l'aide de ce filtre, mais j'avais conseiller de l'utiliser pour toutes les réponses que c'est pire que de simplement le moteur de recherche hostiles. Il expose l'ID de session qui peut être utilisé pour certaines de sécurité exploits (plus d'info).

Il vaut la peine de mentionner que ce sera toujours autoriser les cookies de session sur la manipulation, même si le jsessionid n'est plus visible. (prise de son autre post: http://stackoverflow.com/questions/2255814/can-i-turn-off-the-httpsession-in-web-xml/2256061#2256061)

PS. Je n'ai pas assez de réputation pour le commentaire, sinon je l'aurais ajouté ceci à son post ci-dessus comme un commentaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X