Безопасные и HttpOnly флаги для сессии cookie Websphere 7
В серверах приложений жалобы Servlet 3.0 я могу установить HttpOnly и безопасные флаги для файла cookie сеанса (JSESSIONID), добавив следующее в web.xml:
<session-config>
<cookie-config>
<secure>true</secure>
<http-only>true</http-only>
</cookie-config>
</session-config>
Однако приложение, над которым я работаю, должно быть развернуто в Websphere 7, что является жалобой Servlet 2.5, и он не запускается, если я добавлю это выше в web.xml
Есть ли другой декларативный способ или настройка в конфигурации Websphere 7 для включения HttpOnly и безопасных флагов для cookie сеанса?
Если нет, какой был бы лучший подход к программному обеспечению?
Ответы
Ответ 1
Я думаю, что в WebSphere 7 вам, возможно, придется вникать в административную консоль. Как всегда документация WebSphere кажется бедной, но, похоже, предлагает установить свойство com.ibm.ws.security.addHttpOnlyAttributeToCookies:
И флаг Secure, и флаг HTTPOnly активируются установкой свойства WebSphere Application Server: com.ibm.ws.security.addHttpOnlyAttributeToCookies
.
Я нашел этот, который, я надеюсь, применим к WAS7. Можете ли вы попробовать, пожалуйста, (на данный момент у меня есть только WAS 8):
JSESSIONID cookie:
Защищенный флаг
Флаг Secure может быть установлен в WebSphere Application Server административный интерфейс, выбрав AppServer → [Server Name] → Web Настройки контейнера- > Управление сеансом. Установите флажок для Msgstr "Ограничить использование файлов cookie для сеансов HTTPS".
HTTPOnly Flag:
Атрибут HTTPOnly в этом cookie не может быть установлен. Эта зарегистрирован на сайте IBM как APAR PK98436. Исправление для этого APAR в настоящее время предназначен для включения в Fix Packs 6.1.0.31 и 7.0.0.9, которые еще не доступны. Используя этот APAR, HTTPOnly флаг может быть установлен в файле cookie JSESSIONID с помощью имени свойства: com.ibm.ws.webcontainer.httpOnlyCookies. См. Следующие technote для инструкций по включению пользовательских свойств WebContainer.
Свойство com.ibm.ws.webcontainer.httpOnlyCookies задокументировано на справочном сайте WAS 7.
Ответ 2
Чтобы установить флаг безопасности в файл cookie JSESSIONID (то же самое для WebSphere 7.x и 8.x):
- войти в систему в консоли администратора WebSphere
- Перейдите к Сервеp > Типы серверов > Серверы приложений WebSphere
- Нажмите имя сервера (по умолчанию сервер1)
- Нажмите ссылку Настройки веб-контейнерa > Веб-контейнер
- Нажмите ссылку Управление сеансами
- Нажмите ссылку Включить файлы cookie. Этот бит немного перепутал, вы должны
щелкните на тексте, а не на флажке
- выберите опцию (флажок) Ограничить использование файлов cookie для сеансов HTTPS
- Сохранить.
Чтобы установить флаг HttpOnly в WebSphere 8.x в файл cookie JSESSIONID
- войти в систему в консоли администратора WebSphere
- Перейдите к Сервеp > Типы серверов > Серверы приложений WebSphere
- Нажмите имя сервера (по умолчанию сервер1)
- Нажмите ссылку Настройки веб-контейнерa > Веб-контейнер
- Нажмите ссылку Управление сеансами
- Нажмите ссылку Включить файлы cookie. Этот бит бит немного путается, вам нужно щелкнуть по тексту не в поле
- выберите опцию (флажок) Установите cookie cookie на HTTPOnly, чтобы предотвратить атаки с межсайтовыми сценариями
- Сохранить.
Установить флаг HttpOnly в WebSphere 7.x в файл cookie JSESSIONID
- войти в систему в консоли администратора WebSphere
- Перейдите к Сервеp > Типы серверов > Серверы приложений WebSphere
- Нажмите имя сервера (по умолчанию сервер1)
- Нажмите ссылку Настройки веб-контейнерa > Веб-контейнер
- Нажмите ссылку Пользовательские параметры
- Нажмите кнопку Создать
- Введите имя: com.ibm.ws.webcontainer.httpOnlyCookies значение: * (HttpOnly будет установлен для всех файлов cookie не только JSESSIONID )
- Нажмите кнопку ОК
- Сохранить.
Ответ 3
В WebSphere 7 это можно найти в консоли администратора в Сервера > Серверы приложений WebSphere > [Имя сервера] > Управление сеансом (в разделе "Настройки контейнера" ) > Включить файлы cookie > Ограничить использование файлов cookie для сеансов HTTPS.