Решал я недавно такую задачу, правда, в моем случае не было условия того, что на стороне пользователя все закрываться должно.
> смысл в следуюшем, есть комерческая система, на базе веба, > есть пользователи, есть учетные записи, так вот, после > определенного idle- периода, система должна отключить > пользователя, как показывает практика, большинство не > делает logout а в лучшем случае закрывают браузер, поэтому > полагаться на мета и яваскрипт не очень то хочется, > поскольку чувствительная информация может остаться на > экране Ну если закрывают браузер, то все замечательно, чувствительной информации нет :) Если оставляют - я бы воспользовался meta refresh с уводом на страницу логаута. Если пользователь сам ручками делает reload - значит он за машиной и все в порядке, может ему действительно страничку захотелось обновить, мало ли... То есть мне кажется, не нужно пытаться решать еще и эту проблему, ее просто нет.
Ну а на стороне сервера естественно организовать сессии, умирающие по таймауту, с хранением идентификатора сессии в куках, на странице, в URLе - где угодно.
можно ли сделать так, чтобы веб страница “закрылась” через 10 минут в независимости от действий юзера ?
( например, можно прописать < meta refresh ... , и по рефрешу, сверившись с сессиями, закрыть доступ к содержимому, проблема, что если юзер сам нажмет рефреш до окончания 10 мин, мета перестанет работать )
можно08.08.03 10:22 Автор: paganoid Статус: Member
> можно ли сделать так, чтобы веб страница “закрылась” через > 10 минут в независимости от действий юзера ? > ( например, можно прописать < meta refresh ... , и по > рефрешу, сверившись с сессиями, закрыть доступ к > содержимому, проблема, что если юзер сам нажмет рефреш до > окончания 10 мин, мета перестанет работать )
Храни на сервере в сессиях время, когда надо закрываться. Тогда если пошел мета-рефреш - закрываешь по любому, а если юзер нажал рефреш - на сервере проверяешь, не превысило ли текущее время время закрытия, хранящееся в сессии, и если да, то закрываешь.
re: можно08.08.03 12:01 Автор: tdes <jin> Статус: Member Отредактировано 08.08.03 12:03 Количество правок: 1
> Храни на сервере в сессиях время, когда надо закрываться. > Тогда если пошел мета-рефреш - закрываешь по любому, а > если юзер нажал рефреш - на сервере проверяешь, не > превысило ли текущее время время закрытия, хранящееся в > сессии, и если да, то закрываешь.
это мне понятно, но проблема в том, что иногда мета рефреш перестает работать по несовсем ясным причинам, кроме того юзер может просто отфильтровать хттп пакет на наличие мета
re: можно08.08.03 16:41 Автор: paganoid Статус: Member
> это мне понятно, но проблема в том, что иногда мета рефреш > перестает работать по несовсем ясным причинам, кроме того > юзер может просто отфильтровать хттп пакет на наличие мета
Юзер может отфильтровать хттп пакет на наличие HTML хехе ;) Не думаю, что стоит на это закладываться ;)
Ну попробуй продублировать обновление через мета-рефреш через javascript setTimeout
re: можно08.08.03 17:26 Автор: tdes <jin> Статус: Member
смысл в следуюшем, есть комерческая система, на базе веба, есть пользователи, есть учетные записи, так вот, после определенного idle- периода, система должна отключить пользователя, как показывает практика, большинство не делает logout а в лучшем случае закрывают браузер, поэтому полагаться на мета и яваскрипт не очень то хочется, поскольку чувствительная информация может остаться на экране
> смысл в следуюшем, есть комерческая система, на базе веба, > есть пользователи, есть учетные записи, так вот, после > определенного idle- периода, система должна отключить > пользователя, как показывает практика, большинство не > делает logout а в лучшем случае закрывают браузер, поэтому > полагаться на мета и яваскрипт не очень то хочется, > поскольку чувствительная информация может остаться на > экране > paranoid совершенно прав. храни время последнего обращения на сервере, там же таймаут. при последующих обращениях просто сверяешь и если превышено - грохаешь сессию и редиректишь пользователя на страничку с обшибкой...
можно конечно заморачиваться со скрытыми фреймами, которые обнавляются по рефрешу(кстати в этом случае кажись при нажатии на рефреш обновится активный фрейм :))))), но по моему пользователь сам ответственен за секретную информацию которую может потерять ...
если у тебя скомуниздили номер кредитки, кому ты будешь предявлять себе или кредитной компании ? ))08.08.03 18:23 Автор: tdes <jin> Статус: Member
Не поймешь раз - скомуниздят опять. А кредитная компания - ну это твое в общем-то дело, делить ли последствия своей глупости с ней или самому хлебать...
Кстати о фреймах. В продукте, который я делаю пользователь очень оригинально отучивается от нажимания reload (это не специально, так получилось :) - поскольку вся ботва сделана на фреймах, то попытка перезагрузить страницу (не фрейм) приводит к вылету на стартовую страницу :)
сорри. ну проверь вариант со скрытым фреймом.08.08.03 18:51 Автор: hamstr Статус: Незарегистрированный пользователь Отредактировано 08.08.03 18:52 Количество правок: 1
вроде должно работать.
то есть у тебя рефрешиться будет скрытый фрейм. в случае таймаута javascript перегрузит страничку с критичной информацией.
мне кажется что тут без насильственного дергания со стороны клиента не обойдешься и вероятность отказа можно только уменьшать, но исключить ее совсем нет :(((
а если так - то написать в правилах - не забывайте выключить телевизор :))
Очень знакомая задача :)08.08.03 17:55 Автор: Ktirf <Æ Rusakov> Статус: Elderman
Решал я недавно такую задачу, правда, в моем случае не было условия того, что на стороне пользователя все закрываться должно.
> смысл в следуюшем, есть комерческая система, на базе веба, > есть пользователи, есть учетные записи, так вот, после > определенного idle- периода, система должна отключить > пользователя, как показывает практика, большинство не > делает logout а в лучшем случае закрывают браузер, поэтому > полагаться на мета и яваскрипт не очень то хочется, > поскольку чувствительная информация может остаться на > экране Ну если закрывают браузер, то все замечательно, чувствительной информации нет :) Если оставляют - я бы воспользовался meta refresh с уводом на страницу логаута. Если пользователь сам ручками делает reload - значит он за машиной и все в порядке, может ему действительно страничку захотелось обновить, мало ли... То есть мне кажется, не нужно пытаться решать еще и эту проблему, ее просто нет.
Ну а на стороне сервера естественно организовать сессии, умирающие по таймауту, с хранением идентификатора сессии в куках, на странице, в URLе - где угодно.
есть, я видимо плохо объясняю`08.08.03 18:20 Автор: tdes <jin> Статус: Member
проверенно (например вчера), что при больших значениях рефреша (например 1200), если пользователь вручную делает реферш (кнопкой в браузере), есть далеко не нулевая вероятность :)), что мета рефреш перестанет работать и по прошествию времени указанному в мета, реферш не произойдёт, таким образом чувствительная информация останетсяя на экране. Все что вы говорите правильно, у меня есть и php-сессии и просто таблица в mysql, в которой храница id юзерa, время входа в ситему, время выхода и время когда нужно закрыть доступ к информации, по рефрешу, проверяются данные в таблице, проблема в том, ЧТО МЕТА REFRESH не всегда работает.
Сорри, я видимо маловато работал с meta refresh...08.08.03 18:44 Автор: Ktirf <Æ Rusakov> Статус: Elderman
> проблема в том, ЧТО МЕТА REFRESH не всегда работает. То есть после обновления страницы браузер начинает глючить и он считает что запускать таймер по новой не надо??? Ну тогда сорри, не могу ничего добавить к уже сказанному другими - JavaScript...
кстати, meta refresh можно заблокировать в установках эксплорера18.08.03 23:28 Автор: tdes <jin> Статус: Member
сам юзер, который имеет доступ пусть открывает сколько хочет, но если он вышел покурить и его коллеги сделали это, то уже хуже :))) поэтому и хочется послать какой-нибудь хедер, который грохнет страницу скажем через 3 мин идле
штрафанул не за то, что ты штрафанул меня, а за то, что ты амнистировал спикера- ответ на вопрос - нет07.08.03 20:28 Автор: hex.sex <Computer-Hitler> Статус: Elderman Отредактировано 07.08.03 23:51 Количество правок: 1
а если будешь продолжать такую же политику
угадай, где окажешься?
ты не прав товарисч, не будь ребёнком, я сделал так, как считал нужным07.08.03 22:54 Автор: tdes <jin> Статус: Member Отредактировано 07.08.03 22:56 Количество правок: 1