PHPベースのアプリケーションを作成しています。2 人のユーザーが同じブラウザーから異なるタブにログインすると、それぞれのページにアクセスできます。これを防ぐ方法は?
4 に答える
4つの解決策があります:
そのウィンドウ (この場合はタブ) に名前を付けて、JavaScript で特別なウィンドウを検出することもできます。
if(window.name==4711) {...}
Cookie ではなく、GET パラメータを使用してセッションを使用します。
そのサブドメインで動作する通常の Cookie でランダムなサブドメインを使用します。
mod_rewrite を使用して、実際には存在しない「仮想」ディレクトリに制限されている通常の Cookie を使用します。このコメントに基づくアイデア。
$_SESSION
またはを使用$_COOKIE
して、ユーザーがログインしてデータベースを更新するときに作成される生成キーを保存し、ユーザーがページを変更したときに、その生成キーに基づいて情報にアクセスできるようにします。function
また、キーをチェックする単純なものを作成し、ページに別の機能を使用する必要がある場合があります。それがメニュー バーやログイン ボックスのようなものである場合は、 if statement
likeで囲みます。
if(checkUser($_COOKIE['MYSID'])){
// User is logged in so show whatever
} else {
// Login box here
}
アプリケーションは、ユーザーが現在ログインしているかどうかを確認していないため、ユーザーが資格情報を入力してログインするときに最初に行う必要があることは、セッション変数を設定することです
$_SESSION['logged_in'] = "true";
次に、ページの先頭で次のようにインデックス ページに変更を加える必要があります。
<?
if($_SESSION['logged_in']=='true'){
header('location:USERS_SPECIFIC_PAGE_AFTER_LOGIN.EXT')
}
else{
header('location:login_page.ext');
}
?>
window.name
ブラウザタブを開く時間ごとにプロパティを使用したり、各ユーザーのCookieを設定したりします。