2015-05-08 4 views
1

Использование сеанса, управляемого Java-сервлета через интерфейс HttpSession, создается JSESSIONID файла cookie. И этот файл cookie используется для проверки того, имеет ли пользователь создан сеанс или нет.Выполняет ли сеанс Java (HttpSession) IP-адреса?

Но подтверждает ли сервлет, что это значение JSESSIONID получено с того же компьютера, который создал сеанс?

Я знаю, что атака XSS (Cross-Site Scripting) может украсть файлы cookie сеанса от пользователей, но когда злоумышленник отправляет JSESSIONID на сервер, может ли он получить содержимое сеанса? Или сервер проверяет IP-адрес пользователя, отправляющего JSESSIONID?

+0

Нет, он не проверял, является ли ipaddress тем же. Тем не менее, вы можете получить этот IP-адрес и сохранить в сеансе с другим именем и можете проверить самостоятельно – Panther

ответ

1

Когда сеанс создается для пользователя,

  • идентификатор сеанса создается на стороне сервера.
  • Этот идентификатор сеанса отправляется в браузер, который послал запрос
  • этот идентификатор хранится в куки называется JSESSIONID
  • Браузер отправляет эту куки для последующего запроса
  • сервер знает идентификатор сеанса на стороне сервера и проверяет с одним из файлов cookie
  • ip-адрес не проверяется для последующего запроса. Сессия идентифицируется с использованием jsessionid
+1

OP спрашивает, проверяет ли java httpsession, проверяет ли он ip-адрес машины, в следующем запросе. Который не покрывается в ответ – Panther

+0

@panther спасибо за исправление –

+0

@downvoter, я был бы в восторге от того, что я сделал неправильно. –

0

HTTP - это протокол без учета состояния, значение JSESSIONID (либо в виде файла cookie, либо как параметр URL) передается в каждом запросе, чтобы указать серверу, что запросы принадлежат сеансу, представленному Значение JSESSIONID. Сервер поддерживает объекты сеанса, используя JSESSIONID в качестве ключа, который используется для связывания объекта сеанса с запросом. Он не поддерживает отношения между идентификатором клиента и идентификатором сеанса, если это означает, что «сервер проверяет IP-адрес пользователя, отправляющего JSESSIONID». Таким образом, он не выполняет проверку IP-адресов клиента для данного идентификатора сеанса.

0

Нет, сервер не проверяет IP-адрес. Именно по этой причине могут быть шансы на кражу сеансов. И, Servlet представил некоторые меры, чтобы избежать их.

2

Нет, он не проверял, является ли ipaddress одинаковым между последующим запросом в том же сеансе. Тем не менее, вы можете получить этот IP-адрес и сохранить его в сеансе с другим именем и можете проверить его sel

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