httpOnly cookie

Я выполнил веб-сканирование для приложения (встроенного в Struts и Hibernate Framework), развернутого в jboss 5, которое сообщило "Set-cookie does not use HTTPOnly keyword. The web application does not utilize HTTPOnly cookies". Что это значит. Я искал какой-то пост и просто добавил одну строчку в свой jboss/deploy/jbossweb.sar/context.xml как

<SessionCookie secure="true" useHttpOnly="true" >

После установки, я получаю ошибку при запуске приложения.
Есть ли какая-то конфигурация, которую мне не хватает?

2 ответа

Решение

Что это значит

HttpOnly флаг в заголовке ответа http указывает браузеру, что клиентский доступ к JSESSION_ID или другой идентификатор типа файла cookie сеанса не должен быть разрешен. Это должно предотвратить вредоносный доступ к токену сеанса через клиентские сценарии в XSS(или другую атаку, включающую перехват сеанса со стороны клиента). В настоящее время почти все основные браузеры поддерживают этот флаг (см. Этот список для поддержки браузеров), но он просто игнорируется в браузерах, которые его не поддерживают. Больше информации об этом на сайте OWASP

Настройка его аналогична для tomcat и его вилок, включая Jboss, включив в ваш контекстный файл следующее:

<session-config>
    <cookie-config>
        <http-only>true</http-only>
    </cookie-config>
</session-config>

или же

 <SessionCookie secure="true" httpOnly="true" />

В сервлете 3.0 (Java EE 6) представлен стандартный способ настройки защищенного атрибута для файла cookie сеанса. Это можно сделать, применив следующую конфигурацию в файле web.xml.

<session-config>
  <cookie-config>
    <secure>true</secure>
    <http-only>true</http-only>
  </cookie-config>
</session-config>

Попробуй это:

<SessionCookie secure="true" httpOnly="true" />
Другие вопросы по тегам