Вопрос

Мне нужно предотвратить Фиксация сеанса, определенный тип перехвата сеанса в веб-приложении Java, работающем в JBoss.Однако, похоже, что стандартная идиома не работает в JBoss.Можно ли это обойти?

Это было полезно?

Решение

Этот дефект (найдено здесь) указывает путь к решению.Экземпляр Tomcat, который выполняется в JBoss, настроен с emptySessionPath="true", а не "false", который используется по умолчанию.Это может быть изменено в .../deploy/jboss-web.deployer/server.xml;эта опция доступна как для соединителей HTTP, так и для AJP.

Сама функция используется для устранения контекстного пути (например."foo" в http://example.com/foo) от включения в файл cookie JSESSIONID.Установка значения false приведет к сбою приложений, которые полагаются на проверку подлинности между приложениями, которая включает в себя материалы, созданные с использованием некоторых фреймворков портала.Однако это не оказало негативного влияния на рассматриваемое приложение.

Другие советы

Эта проблема и конкретный случай, в котором она возникает, являются проблемой как в Tomcat, так и в JBoss.Tomcat использует эффект emptySessionPath="true" (и фактически JBoss наследует его от Tomcat).

Это действительно похоже на ошибку в Tomcat и JBoss, когда вы пытаетесь предотвратить атаки с фиксацией сеанса, но спецификация сервлета (по крайней мере, версии 2.3) на самом деле не требует определения или переопределения JSESSIONID в соответствии с какой-либо конкретной логикой.Возможно, это было исправлено в более поздних версиях.

Одним из обходных путей является сохранение адреса клиента в сеансе.Оболочка ответа должна проверять, что адрес клиента, установленный в сеансе, совпадает с адресом клиента, обращающегося к сеансу.

Я узнал приведенный ниже фрагмент настройки кода с одного из форумов.И я добавил нижеприведенные строки.Но когда я печатаю идентификатор сеанса после и перед входом в приложение, это одно и то же.Как бы я протестировал фиксацию сеанса?

  1. D:\jboss-5.1.0.GA\bin un.cof подайте файл и добавьте приведенную ниже строку.установите "JAVA_OPTS=%JAVA_OPTS% -Dorg.apache.catalina.connector.Запрос.SESSION_ID_CHECK=false".

  2. в каждом context.xml из приложений jboss.D:\jboss-5.1.0.GA\server\default\deploy\jbossweb.sar\context.xml

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top