Разрешение фиксации сеанса в JBoss

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

11.08.2008 22:53:50
4 ОТВЕТА
РЕШЕНИЕ

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

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

8
1.08.2018 16:04:28
Я работаю с JBoss 6.1 и только что решил эту проблему. В моем файле server.xml нет опции emptySessionPath. Итак, как это можно сделать для версии 6.1?
Zólyomi István 29.05.2013 07:59:35
Если кому-то еще интересно, я нашел решение. Ищите ответ @ Rp- в этой теме: stackoverflow.com/questions/11028145/…
Zólyomi István 29.05.2013 09:13:31

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

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

0
27.05.2010 07:44:40

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

0
23.05.2011 11:27:55
Ваше предложение полезно для перехвата сеанса в целом, но не касается конкретно фиксации сеанса.
Warren Blanchet 10.06.2011 01:09:18

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

  1. D: \ jboss-5.1.0.GA \ bin \ run.cof file и добавьте следующую строку. установить "JAVA_OPTS =% JAVA_OPTS% -Dorg.apache.catalina.connector.Request.SESSION_ID_CHECK = false"

  2. в каждом context.xml приложений jboss. D: \ jboss-5.1.0.GA \ сервер \ умолчанию \ Deploy \ jbossweb.sar \ context.xml

0
1.08.2018 16:04:52