Pergunta

Eu preciso prevenir Fixação de Sessão, um tipo específico de sequestro de sessão, em um aplicativo Web Java executado no JBoss.No entanto, parece que o idioma padrão não funciona no JBoss.Isso pode ser contornado?

Foi útil?

Solução

Este defeito (encontrado aqui) aponta o caminho para a solução.A instância do Tomcat executada no JBoss é configurada com emptySessionPath="true", em vez de "false", que é o padrão.Isto pode ser modificado em .../deploy/jboss-web.deployer/server.xml;ambos os conectores HTTP e AJP têm esta opção.

O próprio recurso é usado para eliminar o caminho do contexto (por exemplo."foo" em http://example.com/foo) seja incluído no cookie JSESSIONID.Configurá-lo como falso interromperá os aplicativos que dependem de autenticação entre aplicativos, o que inclui itens criados usando algumas estruturas de portal.No entanto, isso não afetou negativamente o aplicativo em questão.

Outras dicas

Este problema e o caso específico em que ocorre é um problema no Tomcat e também no JBoss.O Tomcat compartilha o efeito emptySessionPath="true" (e na verdade o JBoss o herda do Tomcat).

Isso realmente parece um bug no Tomcat e no JBoss quando você está tentando evitar ataques de fixação de sessão, mas a especificação do servlet (pelo menos a versão 2.3) não exige que o JSESSIONID seja definido ou redefinido de acordo com qualquer lógica específica.Talvez isso tenha sido eliminado em versões posteriores.

Uma solução alternativa é armazenar o endereço do cliente na sessão.Um wrapper de resposta deve validar se o endereço do cliente definido na sessão é o mesmo que está acessando a sessão.

Eu descobri o trecho de configuração de código abaixo de um dos fóruns.E adicionei as linhas abaixo.Mas quando imprimo o ID da sessão antes e depois do login no aplicativo, é o mesmo.Como eu testaria a fixação da sessão.

  1. D:\jboss-5.1.0.GA\bin un.cof e adicione a linha abaixo.definir "JAVA_OPTS=%JAVA_OPTS% -Dorg.apache.catalina.connector.Request.SESSION_ID_CHECK=false"

  2. em cada context.xml das aplicações jboss.D:\jboss-5.1.0.GA\server\default\deploy\jbossweb.sar\context.xml

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top