Как установить httponly и cookie сеанса для веб-приложения Java
Я работаю над проблемой XSS (межсайтовый скриптинг). Мое приложение работает на портале Oracle Weblogic. Мы используем Servlet версии 2.5.
Я добавил следующие 3 строки кода в фильтр для настройки httponly и безопасных файлов cookie, и он работает нормально.
String sessionid = req.getSession().getId();
res.setHeader("Set-Cookie", "JSESSIONID=" + sessionid + ";HttpOnly");
res.setHeader("SET-COOKIE", "JSESSIONID=" + sessionid + "; secure");
Проблема в том, когда я выхожу из системы и сразу захожу в тот же браузер Я могу войти в систему, но после этого на страницах jsp появляется проблема с тайм-аутом сеанса. Мы используем API, связанные с WebLogic. API request.getuserprinical()
возвращает значение null. Полагаю, оно имеет значение null.
Пожалуйста, поделитесь любыми идеями.
Если есть другие способы установить httponly или безопасный флаг, пожалуйста, помогите.
Ответы
Ответ 1
В зависимости от особенностей вашего веб-контейнера, изменение файлов cookie сеанса, управляемых контейнером, в приложении может привести к тому, что сервер приложения отбросит существующий сеанс и создаст новый. Я наблюдал это на Tomcat, но это может быть похоже на Weblogic.
Если вы используете Servlets 3.0, вы можете фактически указать серверу приложений, чтобы все cookie файлы сеанса были HttpOnly и Secure со следующими фрагментами:
<session-config>
<cookie-config>
<secure>true</secure>
<http-only>true</http-only>
</cookie-config>
</session-config>
Это лучший подход, чем ручной взлом куки с фильтром.
К вашему сведению: я также написал библиотеку Java, которая внедряет ряд связанных с безопасностью заголовков ответов в приложения на основе сервлетов.
Ответ 2
Вам нужно использовать следующий синтаксис, чтобы установить флаги httponly и securu
JSESSIONID=ABC3423DF...SDF;HttpOnly;Secure
Ответ 3
Я использовал теги <http-only>
и <secure>
в web.xml, чтобы установить защищенные атрибуты и сработал.
<session-config>
<cookie-config>
<http-only>true</http-only>
</cookie-config>
<session-config>