Как запретить сеансам входа в браузер Opera при входе в Chrome - PullRequest
0 голосов
/ 22 мая 2019

Я создал систему входа в php mysql для своего сайта.Все работает нормально, но проблема, с которой я сталкиваюсь, заключается в том, что мой сеанс разбирается в другом браузере, а не в том, в котором я создал / вошел в систему. Конкретно я имею в виду, что когда я вхожу в браузер Chrome, который затем создает сеанс, но он также продолжается вбраузер Opera, так как он также получает доступ к моей сессии и заставляет меня войти в систему под именем пользователя, аналогичным chrome.

Я проверил вход в fb, stackoverflow и многие другие веб-сайты, чтобы увидеть, происходит ли то же самое с ними или нет, иих сеанс продолжается в Opera при входе из Chrome, но этого не произошло.Но в моем случае с веб-сайтом это происходит, когда я захожу в Chrome, я тоже могу получить доступ к своему пользователю из Opera.

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

Вид кода, который я использовал для создания сеанса, написан ниже.

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

session_start();
if (isset($_POST['email']) and isset($_POST['password'])){
    $email = $_POST['email'];
    $password = $_POST['password'];
    $query = "SELECT * FROM `users` WHERE email='$email' and password='$password'";
    $result = mysql_query($query) or die(mysql_error());
    if(mysql_num_rows($result) > 0){
        $_SESSION['email'] = $email;
        echo "You are logged in.";
        header("Location: index.php?log=success");
        unset($_POST);
    } else {
        echo " Something went wrong ";
    }
}

1 Ответ

0 голосов
/ 22 мая 2019

Я могу предложить вам создать таблицу Logs или любое имя таблицы, в которую вы будете вставлять данные, как только пользователь войдет в систему

Например,

* 1005.*

Теперь, чтобы запретить другим пользователям входить на разные платформы с использованием той же учетной записи, у вас есть условие, или проверить в своем модуле входа для получения ПОСЛЕДНЮЮ ЗАПИСЬ , которую пользователь имеет в таблице Logs

Пример кода:

SELECT * FROM Logs WHERE user_id = (Session of the logged in user) ORDER BY timestamps (you may use "created_at" if you have) DESC LIMIT 1

Приведенный выше код извлекает последнюю запись зарегистрированного пользователя в вашей таблице Logs, теперь проверьте, установлен ли is_logged_in в флаг true,затем перенаправить пользователя обратно на страницу входа или запретить ему / ей продолжать использовать учетную запись

...