проблема совместного использования сеанса в Firefox

871
Sathya

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

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

1
Любая информация о веб-фреймворке используется? Одним из решений может быть запрет файлов cookie и всегда передавать sessionid или токен в FF и обратно на сервер. 13 лет назад 0

2 ответа на вопрос

5
Vineet Reynolds

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

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

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


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

2
Jigar Joshi

Ты не можешь,

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

Похожие вопросы