Вопросы

Проверка входа с запросом базы данных на каждой странице

Я создаю безопасную систему входа в систему на PHP.
На каждой странице административной области я хочу быть уверен, что пользователь правильно вошел в систему, что его учетная запись все еще включена, что пользователь один раз подключился к своей данные для входа (когда пользователь входит в систему в первый раз, для статуса active_user устанавливается значение 1).

function isCookieValid() {
    global $pdo;

    $isValid = false;
    if(isset($_COOKIE["rememberUser"])) {

        $decryptCookie = base64_decode($_COOKIE["rememberUser"]);
        $user_id = explode("mMUa26yB943jRaJl755OM18jgR", $decryptCookie);
        $user_id = $user_id[1];

        $sqlQuery = "SELECT * FROM users WHERE id_user = :id";
        $stmt = $pdo->prepare($sqlQuery);
        $stmt->execute(array(":id" => $user_id));
        if ($row = $stmt->fetch()) {
            if($row["enabled_user"] === 1 && $row["active_user"] === 0) {

                        unset($row["password"], $row["salt"]);
                        $_SESSION["current_user"] = $row;
                        $isValid = true;
            } else {
                logout();
            }
        } else {
            logout();
        }
    }
    return $isValid;
}

Я запрашиваю базу данных на каждой странице, для каждого пользователя, чтобы проверить, соответствует ли файл cookie, который хранится на компьютере (я автоматически активирую файл cookie, потому что для моего приложения необходимо, чтобы все пользователи вошли в систему в течение длительного времени) соответствует идентификатору пользователя в базе данных. Если это так, я создаю переменную, в которой хранятся данные о пользователе. Затем для защиты своих страниц я использую функцию isLoggedin(), а именно:

function isLoggedin() {

    if(isCookieValid()){
        if(isset($_SESSION["current_user"])) {
            return true;

        }
    }
    return false;
}

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

Читать:
Использование сохраненных регистров в основной функции на ассемблере RISC-V

Сессии намного лучше, чем файлы cookie. Никогда не позволяйте конфиденциальным данным покидать сервер. Пожалуйста, прочитайте здесь о шифровании файлов cookie. Также прочитайте здесь о безопасности сеанса.   —  person Yoyo    schedule 15.11.2019

Похожие записи

Предоставить Amazon ML разрешение на чтение из Amazon S3 программно

admin

Поиск Helm 3 не дает результатов от ACR

admin

Как полностью закрыть вкладку с помощью Selenium в Python?

admin

Угловые RxJ получают только количество значений, а затем испускают

admin

Оператор SELECT для удаления пустых столбцов из набора результатов с переменными данными

admin

Импорт s3 Bucket в шаблон Cloudformation

admin