Закрытие вкладки браузера: закрывать ли сессию?

scorpion-ds

Новичок
Недавно клиент нашел "баг", если закрыть вкладку браузера, то сессия не закрывается и если ее вернуть или просто заново зайти на сайт, до закрытия браузера (или сессии), то авторизация сохраняется, по словам клиента это не безопасно.

Собственно ему объяснили, что это не баг, а особенность работы браузеров в вкладками и что даже интернет-банкинг так работают и задачу пока отложили.

В общем-то, сессию можно закрывать по событию закрытия вкладки, но стоит ли это делать, ведь пользователь может открыть у себя несколько вкладок с приложением? Делать механизм подсчета открытых вкладок не очень хочется, да и клиенту придется объяснять, что задача не тривиальная.


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

Hello

Новичок
ping-pong придули еще в irc
Делать время жизни сесии 1 минуту, из открытой вкладки слать запрос каждые 50 секунд.
 

AnrDaemon

Продвинутый новичок
Недавно клиент нашел "баг", если закрыть вкладку браузера, то сессия не закрывается и если ее вернуть или просто заново зайти на сайт, до закрытия браузера (или сессии), то авторизация сохраняется, по словам клиента это не безопасно.
Авторизовываться вообще небезопасно.
 

WMix

герр M:)ller
Партнер клуба
браузер имеет настройку, удалять куки при закрытии.
 

scorpion-ds

Новичок
ping-pong придули еще в irc
Делать время жизни сесии 1 минуту, из открытой вкладки слать запрос каждые 50 секунд.
Я не думаю, что это хорошая идея, ведь тогда сессия будет продлеваться, а надо что бы через N минут бездействия сессия закрывалась, в теории открытая вкладка тоже может быть "неиспользуемой".

браузер имеет настройку, удалять куки при закрытии.
Ну да, и при авторизации в приложении выбрасывать инструкции как в настройках браузера настроить хранение куков.
 

AnrDaemon

Продвинутый новичок
Если ТЕБЕ надо, чтобы ТВОЯ сессия через известное количество времени деактивировалась, мне тебе надо указывать, в каком конфиге это настраивается?
То, что там клиент выдумывает - его трудности. Главное, что ты знаешь, как это работает, можешь эту работу протестировать и убедиться в корректной её, работы, работе.
В частности, что сессия не активна после, скажем, 20 минут бездействия на сайте.
 

MiksIr

miksir@home:~$
sessionStorage можно использовать, он трется при закрытии вкладки, только и авторизация на одну вкладку будет работать... я бы прибил такого разработчика сразу.
 

Breeze

goshogun
Команда форума
Партнер клуба
ping-pong придули еще в irc
Делать время жизни сесии 1 минуту, из открытой вкладки слать запрос каждые 50 секунд.
ага, сидят такие 1000 клиентов, ничего не делают в общем-то, а раз в 50 секунд dog pile в 1000rps
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
опять обсасывание сферического коня
scorpion-ds, ты пиши конкретно: что делает сайт, что плохого произойдет, если клиент не разлогинится, какая именно нужна безопасность, от каких угроз и с какой целью.

Подсчет открытых вкладок - задача вполне тривиальная.
Можно получать по ajax уведомление о закрытии страницы.
Можно держать long polling или web socket и узнавать о разрыве соединения.
Предотвратить разрыв связи с клиентом - нельзя.
Решение зависит от целесообразности и бюджета.
 

fixxxer

К.О.
Партнер клуба
Сторадж-х*ёрадж.

Аяксом раз в N секунд полл, сессию экспайрить по N минут неактивности, всё.
Разлогин _сразу_ после закрытия таба никому в хрен не впился - если не веришь, уточни у заказчика, устроит ли его "через минуту".
 

scorpion-ds

Новичок
Если ТЕБЕ надо, чтобы ТВОЯ сессия через известное количество времени деактивировалась, мне тебе надо указывать, в каком конфиге это настраивается?
То, что там клиент выдумывает - его трудности. Главное, что ты знаешь, как это работает, можешь эту работу протестировать и убедиться в корректной её, работы, работе.
В частности, что сессия не активна после, скажем, 20 минут бездействия на сайте.
В том, что есть сейчас, разлогин через 20 минут бездействия, вопросов нет.

sessionStorage можно использовать, он трется при закрытии вкладки, только и авторизация на одну вкладку будет работать... я бы прибил такого разработчика сразу.
Это вроде не очень кроссбраузерно.

опять обсасывание сферического коня
scorpion-ds, ты пиши конкретно: что делает сайт, что плохого произойдет, если клиент не разлогинится, какая именно нужна безопасность, от каких угроз и с какой целью.
Это не сайт, веб-приложение, на котором хранятся финансовая информация которая сама по себе не критична (ее потеря, то есть потеря не желательна очень, но напрямую на управление средствами она не влияет), но секретная.

Подсчет открытых вкладок - задача вполне тривиальная.
Можно получать по ajax уведомление о закрытии страницы.
Можно держать long polling или web socket и узнавать о разрыве соединения.
Предотвратить разрыв связи с клиентом - нельзя.
Не хотелось бы постоянного соединения и пингования сервера, я реально пока рассматриваю подсчет количества вкладок, при закрытие последней посылать запрос на разлогин.

Решение зависит от целесообразности и бюджета.
Из-за этого вопрос отложен, в понимании клиента это наша ошибка, что закрытие вкладки не закрывает сессии, тем не менее ему были предоставлена доводы про несколько открытых вкладок и примеры банковских систем, которые тоже имеют такую проблему, потом они не считаю больше это багом, но и не готовы пока платить за решение проблемы.

Тему я создал, что бы собрать мнения, в каком направлении лучше двигаться, если клиент попросит предложить решение.
 

Redjik

Джедай-мастер
дак у тебя 90% вопросов связаны с борьбой с дебилизмом заказчиков и твоего руководства, может пора уже таки работу сменить?
 

scorpion-ds

Новичок
дак у тебя 90% вопросов связаны с борьбой с дебилизмом заказчиков и твоего руководства, может пора уже таки работу сменить?
Я фактически на новой работе, компания разделилась, я перешел в ту часть, которая будет заниматься веб-приложениями, но и один клиент перекочевал сюда, мне обещали, что во второй части проекта (которая начнется через месяц примерно), все будет строго по ТЗ. Собственно кроме шефа со старой работы пока я один, народ сейчас набираем. Сюда пойти я согласился пойти, так как хочу иметь в портфолио завершенный проект на SF2 (по сути их три уже, но два других с нюансами ...), что бы нормально найти работу, иначе когда узнают, что я последние 2,5 года занимался WP, со мной говорят уже по другому ...
 
Сверху