Java сервлет запомнить вариант с печеньем - PullRequest
4 голосов
/ 18 октября 2011

Мне нужно реализовать простую опцию Запомнить меня в Java-сервлете с куки, без использования каких-либо расширенных фреймворков.

Сначала при входе в систему я создаю куки и отправляю его в ответ браузеру (клиенту).Значение, которое будет сохранено в cookie, - это простой хеш от имени пользователя + пароль.

Как мне управлять входящим запросом из браузера, отправляющим cookie?Мой подход заключается в проверке между зарегистрированными пользователями, есть ли какой-либо пользователь, у которого хэш от имени пользователя + пароль равен значению в куки?Правильный ли этот подход?

Также я не совсем понял, каков механизм срока годности.Удаляет ли браузер файл cookie по истечении срока его действия? Нет, как проверить, не истек ли срок действия файла cookie?

1 Ответ

4 голосов
/ 18 октября 2011

Пока вы не используете HTTPS, предложенный вами метод крайне небезопасен. Я бы предложил сгенерировать какой-либо токен сеанса (например, использовать java.util.UUID.randomUUID()) и установить его как cookie и сохранить его где-нибудь на стороне сервера, чтобы позже вы могли идентифицировать пользователя, связанного с этим идентификатором сеанса, в cookie.

Это дает вам возможность сбросить определенный сеансовый файл cookie, если вы считаете, что происходит какое-либо мошенничество и нет прямой связи между именем пользователя / паролем и идентификатором cookie, который вы используете. Но обратите внимание: этот метод все еще уязвим для атаки «человек посередине».

Относительно истечения срока действия: да, файл cookie становится недействительным и может быть удален браузером, если срок его действия истек. Но вы можете установить cookie на что-нибудь в 3000-м году, чтобы оно продолжалось вечно.

...