2017-02-13 3 views
-1

Я хотел бы настроить механизм для отслеживания каждого пользовательского сеанса http, основанного на использовании объекта Cookie. Поэтому хранить идентификатор пользователя в Cookie, который я буду общаться, то клиенту в теле ответа (после того, как процесс Войти успешно), такие как:Как получить соответствующий HttpSession на основе Cookie

Cookie loginCookie = new Cookie("userId", userId); 
httpServletResponse.addCookie(loginCookie); 

У меня есть получили три вопроса пожалуйста:

1) Как получить заданный пользовательский сеанс http на основе его Cookie? Должен ли я хранить JSESSIONID вместо userId для этой цели?

2) Шифрование файла cookie пользователя не будет препятствовать тому, чтобы cookie был взломан каким-либо злоумышленником, подслушивающим связь между клиентом и сервером. Таким образом, злоумышленник может повторно использовать файл cookie, чтобы запросить сервер как фактического пользователя, так как тот же куки-файл передается каждый раз, когда пользователь запрашивает сервер. Я действительно не вижу, где может помочь шифрование cookie. Должен ли я использовать алгоритм цифровой подписи, чтобы проверить подлинность отправителя?

ответ

0
  1. Вы должны сохранить идентификатор сеанса в файле cookie и идентификатор пользователя в сеансе на стороне сервера.

  2. Повторное использование файлов cookie не должно быть проблемой, если вы используете https, что уменьшает риск eavsdropping. Если вы не используете https, ни один способ шифрования не поможет вам.

+0

Благодарим за предоставленный вам быстрый ответ. Что касается первого пункта, как я должен установить связь между идентификатором сеанса и идентификатором пользователя? Моя цель, как я сказал, - это получить сеанс, соответствующий данному пользователю. –

+0

Вы знаете, что идентификатор сеанса принадлежит определенному пользователю в определенном браузере, потому что у него есть файл cookie. Вы можете проверить, какой именно пользователь, проверив идентификатор пользователя в состоянии сеанса. –

Смежные вопросы