1

ログイン/ログアウト機能を備えた Web サイトがあります。ユーザーが 2 台の異なるコンピューターから同じアカウントにログインできないようにするには、安定した手法で 100% 保証するにはどうすればよいですか?

Javascript は簡単に無効にできるため、これには使用できません。

たとえば、.NET には、ユーザーがサーバーとの接続を中止したときに実行される Session_End 関数があります。PHPでそれをどのように行うことができますか?

みんなありがとう

4

2 に答える 2

2

注:この手法では、2番目のコンピューターにログインするときに、最初のコンピューターでアカウントを効果的にログアウトします。

ユーザーがログインしたら、ユーザーのセッションIDをデータベースまたは同等のものに記録します。各ページリクエストで、ユーザーのセッションIDがアカウントのストアに保存されているセッションIDと一致していることを確認します。セッションIDが一致しないログインアカウントからのリクエストは拒否され、ユーザーはログアウトする必要があります。

于 2012-07-12T18:00:40.197 に答える
0

それは、あなたがどのくらい深く行きたいかによって異なります。最も一般的に:

  • ログイン時に一意のセッション ID Cookie を作成し、データベースに保存します
  • すべての Web ページがセッション Cookie をチェックして、有効であることを確認します
    • セッションが有効でない場合、ユーザーはログイン ページにリダイレクトされます。
  • 別のユーザーがログインしようとすると、以前のセッションが上書きされます
    • これにより、基本的に最初のユーザーが追い出されます

大企業は、IP アドレスもデータベースに保存します (そのため、セッション Cookie が盗まれることはありません)。

于 2012-07-12T18:01:44.877 に答える