ここでは、セキュリティスタック交換、phpsec Webサイトなどの質問を読む(すべてのリンクをここに入れることはできません)。ログイン後にセッションIDを再生成してをログアウトしてを実装したいと考えています。これを行うには、ユーザがであればがログインしているか、またはログアウトしている場合は、session_regenerate_id
を使用する必要があります。それでは、私の考えでは、session_regenerate_id
を(認証が完了した後に)ログイン機能に入れて、それをログアウト機能に入れます。ログインしてログアウトした後にセッションIDを再生成することについての実装
コード例:
public function login(/.../) {
/..if the authentication completed../
session_regenerate_id();
/..Redirects to home page../
}
public function logout(/.../) {
/..delete the cookie in the database../
unset($_SESSION[$name]);
setcookie($name, '', time() - 1);
session_regenerate_id();
}
私はそれがすべての再生成されますので、それはsession_start()
後に使用する必要がありますが、私は(session_start()
を見つけることができます)私のコアファイルの上に置くことができないphp.net
で読んだことから、時間。これをどのように実装できますか?私はrequire_once 'path/to/my_core_file.php'
のphpの先頭(開始)の後にsession_regenerate_id()
と呼ぶべきですか?
私は実際にセキュリティを高めるためにこれを実装する必要があります。phpsec website
は、session_start()
を使用するとウェブサイトを脆弱にします。あなたが持っているアイデアが私を助けてくれるかもしれません、ありがとうございます。
UPDATE
質問をフォローアップ、(ログアウトのための)セッションを無効にします。このunset($_SESSION[$name])
ように設定解除されましたか?
というユニークなIDを生成し、
$_SESSION['user_auth'] = uniqid()
のようにセッション変数に設定し、すべての認証ページにそれをチェックするためにuniqid()
機能を試すことができますか? –'session_regenerate_id'は' session_start'の後に使用されます。最初の例https://secure.php.net/session_regenerate_id –
@SumonMahmudオブジェクト指向プログラミングを参照してください。 –