1

Michaelという名前のユーザーがregisteredで、データベースのusersという名前のテーブルにあるとします。

Michael が私のサイトを閲覧している間、私はテーブルから彼のユーザーを削除します。私のログインシステムはセッションで動作します。

ユーザー Michael がデータベースから削除された後、ブラウザーはセッションが終了するまで "Michael" で Web サイトを閲覧できます。

セッションが処理された後は、毎回確認しない限り変更されないためです。

クエリ/リクエストが多すぎるためにエンジンの負荷が大幅に増加する可能性がある私のソリューション:

session.inc.php にチェッカーを追加します。

if (isset($_SESSION['user']))
{
    $check = $pdo->prepare("SELECT * FROM users WHERE user_name = :user")
    $check->execute(array( ":user" => $_SESSION['user']));

    if (!$check->rowCount())
    {
        session_destroy();
    }
}

セッションで現在ログインしているユーザー名とまったく同じ行があるかどうかを確認し、そうでない場合はセッションを破棄します。

質問:

私の Web サイトが多くのブラウジング ユーザーを獲得した場合、そのソリューションは大きなエンジン負荷を引き起こしますか?

これを行うより良い方法はありますか?

4

2 に答える 2

0

Ayush - どうやって他人のセッションを破壊するつもりですか?

user1761494 - 最善の方法は、セッションをデータベースに保存することです。これにより、Web サイトにセキュリティが追加されるだけでなく、セッションを完全に制御できます。ユーザーを追い出す (削除/禁止) 場合は、そのユーザーのセッション レコードを一緒に削除するだけです。

于 2013-04-21T14:54:00.133 に答える