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>