• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

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

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Протухание сессии

  • Автор темы HITMAN-NN
  • Дата начала
H

HITMAN-NN

Народ у мя такая задача: есть логин форма, пользователь аутинтифицируется, дальше работает на страничке. А по истечении сессии пользователя, должен происходить редирект на логин форму автоматически. Так вот задача: как лучше определить: что время сессии истекло и как сделать редирект на логин форму?
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
HITMAN-NN
ну время сессии истекло задается в настройках серверного документа
Idle session timeout: 30 minutes
а редирект по идеи создать портал
 
H

HITMAN-NN

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

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
помню делал сам определение сесии
заключалось в том что в урл добавлялось что-то типа SES=UNID
где UNID это унид дока в котором я прописавал что за пользователь логонился и все его данные, потом при заходе на другую страницу я обновлял этот док, тем самым четко знал сколько времени прошло с прошлого раза и при желании спокойно ставил скриптовый таймер
 
H

HITMAN-NN

ну дык, а как вытащить сколько стоит таймаут на сервере? И можно пример кода?
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
HITMAN-NN
а что вытаскивать то?
часть кода на страничке делаешь динамическим
 
A

Akupaka

помню делал сам определение сесии
заключалось в том что в урл добавлялось что-то типа SES=UNID
где UNID это унид дока в котором я прописавал что за пользователь логонился и все его данные, потом при заходе на другую страницу я обновлял этот док, тем самым четко знал сколько времени прошло с прошлого раза и при желании спокойно ставил скриптовый таймер
и что дает знание сколько прошло времени с прошлого обращения к сервверу?
если пользователь зашел в 12-00 на сервер, аутентифицировался. Простой сессии пусть указан в 30 мин. Потом пользователь через 35 мин заходит на сервер и получает страницу аутентификации! И шо?

а что вытаскивать то?
часть кода на страничке делаешь динамическим
Опять таки, что делать динамическим и, что это дает? Делать обращение к серверу автоматически? Тогда таймер сессии на сервере будет обнуляться постоянно!

В общем, давайте подумаем, что нам надо:
есть логин форма, пользователь аутинтифицируется, дальше работает на страничке. А по истечении сессии пользователя, должен происходить редирект на логин форму автоматически. Так вот задача: как лучше определить: что время сессии истекло и как сделать редирект на логин форму?
во-первых, если время сессии на сервере истекло, то сервер автоматически направит пользователя на страницу аутентификации при следующем обращении к серверу. не понимаю, чем это не устраивает.
если же, все-таки, не устраивает, то могу предложить такие варианты.
при открытии страницы с сервера, в кукис можно записывать время обращения к серверу. при этом на странице можно поместить код, который будет через какой-то период времени:
1) опрашивать значение этих кукис, и, в случае, если предполагаемое время сессии истекло, перенаправлять страницу на какой-то требуемый урл, что приведет к запросу аутентификации, либо использовать команду входа ?Login.
2) (кукисы не обязательно писать) через какое-то определенное время, которое меньше предполагаемого времени сессии, обращаться к серверу, чтобы обновить сессию, т.о. сессия не закончится; единственное, что в этом случае, я бы рекомендовал через какое-то определенное время делать автоматически операцию закрытия сессии (?Logout), на случай, что пользователь оставит открытой страницу на очень долго.
единственный вопрос - как определить предполагаемое время сессии? не знаю :) можно создать документ в базе, в котором указывать то же самое значение, что и на сервере установлено. можно было бы попытаться читать его автоматически, но оно может быть указано не в одном заданном месте, а как у сервера спросить более корректно, я не в курсе.
могу предложить посмотреть проект domBulletin - очень много интересных вещей под веб для домино.

опять-таки, не понимаю зачем оно надо?.. буду рад объяснению
 
H

HITMAN-NN

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

Короче пришел к такому варианту: через какой-то короткий промежуток времени делать запрос на сервер, если он возвращает что сессия протухла уже, то рефрешем страницу и автоматом нас кидает на логин-форму... Тока вопрос какой запрос делать???
 
A

Akupaka

Короче пришел к такому варианту: через какой-то короткий промежуток времени делать запрос на сервер, если он возвращает что сессия протухла уже
каждое обращение к серверу говорит, что Я ЕЩЕ ЖИВОЙ! НЕ ЗАКРЫВАЙ СЕССИЮ!
как при этом сервер должен вернуть, что сессия протухла? О.о

Просто по истечению сессии у мя сразу не кидает на логин-форму... а кидает только по рефрешу страницы
и правильно, и так и должно быть! это тонкий клиент! он работает не от сервера, а от пользователя
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!