проблема с общим доступом к сеансу в Firefox

проблема с общим доступом к сеансу в Firefox

Firefox (3.6.18) делится сессией, когда приложение открыто в нескольких вкладках. Я хочу предотвратить это, на каждой открытой вкладке должна быть новая сессия, чтобы состояние данных в сессии не было повреждено.

Любая помощь в этом отношении будет высоко оценена.

решение1

Нет никаких проблем с Firefox или даже с той версией, которую вы упомянули. Я бы посчитал, что ваше понимание того, как браузеры отслеживают сеансовые куки, немного неполное. Браузеры всегда отправляют запрос на сервер с куки для домена сервера, который их выдал. Это не зависит от вкладки браузера, которая выдала куки.

Если вы не хотите, чтобы сеансовые куки использовались между вкладками, вы можете иметь идентификаторы, специфичные для страницы, чтобы различать каждую страницу, отрисованную сервером для клиента. Когда соответствующая вкладка отправляет запрос обратно, она должна также отправлять идентификатор, специфичный для страницы, чтобы сервер мог различать запросы, отправленные между вкладками. Это не поможет вам, если пользователь копирует ссылку с этим идентификатором, специфичным для страницы, из одной вкладки в другую.

Если вы хотите продолжить использовать идентификаторы, специфичные для страницы, то все, что вам нужно сделать, это проанализировать входящие параметры запроса на предмет идентификатора страницы. Если ничего не существует, то вы можете сгенерировать его с помощью PRNG и отправить ответ, содержащий этот идентификатор страницы на странице (например, как скрытое поле в форме или в URL, но никогда как cookie).


Примечание: Если вы ищете функции, специфичные для браузера, Firefox 3 и 4 не имеют функции "Новый сеанс", присутствующей в IE9, которая позволяла бы пользователям создавать новые сеансы в разных окнах браузера. Кроме того, функция "Новый сеанс" IE9, похоже, не работает, если сервер использует постоянные файлы cookie для отслеживания пользователя.

решение2

Ты не можешь,

Вы можете переписать URL и добавить jSessionId к каждому URL и отслеживать его вручную. Но это не тот способ, которым нужно делать вещи.

Связанный контент