Я разрабатываю безопасную систему входа с php. Я хочу предотвратить множественный вход для пользователя с одинаковым именем пользователя и паролем. С моим скриптом пользователь может войти в систему с учетной записи из разных браузеров или с разных IP-адресов с одинаковым именем пользователя и паролем. Мне нужно добавить несколько столбцов в мою базу данных. Когда пользователь регистрируется в поле, он становится 1, а учетная запись заблокирована, когда пользователь выходил из учетной записи, разблокируется. Но что делать, если пользователь закрывает браузер без выхода из системы?
Вы можете установить случайную соль при входе в систему и сохранить ее в базе данных и в cookie в пользователе.
При каждом входе вы создадите новую случайную соль и сохраните ее в базе данных (заменив предыдущее значение) и в cookie для текущего пользователя.
Для каждого действия на вашем сайте вы будете проверять не только сеанс, но и соль, если соль в сеансе пользователя отличается от текущего пользователя – это означает, что кто-то вошел в систему после него с теми же учетными данными, и вы сделаете недействительным текущей сессии. Таким образом, у вас будут необходимые функции, и у вас не будет проблем с тем, что пользователи не выходят из системы, потому что каждый раз, когда пользователь регистрируется в нем, это приведет к аннулированию всех других пользователей, входивших в систему, с теми же учетными данными.