Когда пользователь входит в систему, я даю ему cookie-файл с именем auth со значением GUID, срок действия которого истекает через 2 недели. Я сохраняю хешированный GUID в базе данных с солью их идентификатора пользователя, а затем дату, когда он истекает. Когда пользователь заходит на сайт, я проверяю cookie и регистрирую их, если они совпадают и не истек срок действия в базе данных.
В какой-то момент до истечения 2 недель я думал об обновлении строки и увеличении срока действия. Как часто вы это делаете? Каждый запрос страницы кажется слишком частым, так как я буду постоянно писать в пользовательскую таблицу.
Я также рассмотрел вопрос об изменении значения файла cookie для аутентификации. Недостатком этого является то, что вы не можете проходить аутентификацию на нескольких компьютерах / в браузерах.
Я мог бы сделать это через cookie-файл сеанса, чтобы перезапись происходила только один раз за сеанс. Когда пользователь заходит на страницу, я проверяю файл cookie сеанса с именем authenticated. Если его там нет, я даю им новое значение cookie аутентификации и cookie сеанса аутентификации и увеличиваю время истечения в БД и cookie аутентификации. Если это так, я просто проверяю подлинность cookie-файла.
Кажется, что StackOverflow никогда не изменяет свои cookie-файлы авторизации, пока вы не выйдете и не войдете в систему снова. Это, кажется, делает его более уязвимым для перехвата сеансов - если вы получаете cookie-файлы аутентификации, у вас есть доступ к учетной записи пользователей, пока они не войдут в систему. снова. Поскольку их файл cookie аутентификации не истечет или не изменится, пользователь не выйдет из системы после входа в систему.
- Вы разрешаете пользователю входить в систему из нескольких мест / браузеров?
- Если нет, как часто вы меняете их токены аутентификации?