Каков наилучший способ периодически спрашивать пользователя, хотят ли они оставаться в системе, когда пользователь находится на веб-странице?

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

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

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

Как лучше всего это сделать?

На ум приходят два способа, оба из которых отображают сообщение пользователю с вопросом, хочет ли пользователь продлить свой сеанс входа в систему. Если пользователь ответит «да», срок действия продлевается еще на 20 минут. Если пользователь отвечает «нет» или вопрос остается без ответа, то пользователь автоматически выходит из системы, а затем перенаправляется на домашнюю веб-страницу моего веб-сайта:

  1. Пусть сервер периодически отправляет сообщение (опрос) в браузер каждого пользователя, чтобы пользователю было предложено оставаться в системе.

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

Первый способ кажется намного сложнее, и я не знаю, как это сделать.

Второй метод, хотя и намного проще, кажется, что злонамеренный пользователь сможет его победить.

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

Есть ли способ скомпилировать JavaScript на стороне браузера или какой-либо другой код, который обрабатывает проверку сеанса входа в систему с истекшим сроком действия, чтобы злоумышленник не мог победить его с помощью инспектора кода браузера? Возможно ли это в веб-API?

Любые идеи?

Спасибо.


person Community    schedule 18.12.2020    source источник
comment
Разве вы не можете хранить данные формы или любые другие данные, созданные пользователем, в локальном хранилище?   -  person muzzletov    schedule 18.12.2020


Ответы (1)


Вы можете сделать следующее..

1. После успешного входа в систему сохраните время входа пользователя в хранилище браузера, такое как LocalStorage, Indexed DB или хранилище файлов cookie,

2. Используя javascript, вы можете сравнить текущее время и время входа пользователя в систему.

3.После определенного интервала может составлять 30 минут/1 час, вы можете спросить пользователя, хочет ли он оставаться в системе.

person Akram Hossain    schedule 18.12.2020