これはちょっとした暴言であり、質問でもあります。
Facebook のように、一度に 1 つのアカウントだけにログインしたいサイトがいくつかあります。
しかし、ブログ サイトから電子メールに至るまで、常に別のアカウントにログインする前にログアウトする必要があります。
セキュリティへの影響と、Cookie ベースのセッションが少し複雑になることは理解していますが、なぜこれがもっと見られないのでしょうか?
一度に 1 つのクライアントから複数のユーザーを使用することは、なぜ悪い考えなのでしょうか?
これはちょっとした暴言であり、質問でもあります。
Facebook のように、一度に 1 つのアカウントだけにログインしたいサイトがいくつかあります。
しかし、ブログ サイトから電子メールに至るまで、常に別のアカウントにログインする前にログアウトする必要があります。
セキュリティへの影響と、Cookie ベースのセッションが少し複雑になることは理解していますが、なぜこれがもっと見られないのでしょうか?
一度に 1 つのクライアントから複数のユーザーを使用することは、なぜ悪い考えなのでしょうか?
これは、それぞれが独自のCookie/認証などを使用して複数のセッションを許可することにより、ブラウザで実装する必要があると思います.
すべてのサイトで機能し、それらの更新を必要としないように思われるため、これがおそらく最良の解決策であり、私はそれについてあまり知りませんが、どちらも実装するのはそれほど難しくないようです. .
単純な問題は、ほとんどのセッションが Cookie を介して実装されており、Cookie なしでそれを行う方法がほとんどないことです。
Cookie の仕組みは、ドメイン/パスにバインドされ、そのドメインに関連付けられたすべての Cookie が送信されることです。
したがって、2 つの異なる Cookie を使用して 2 回ログインすることを許可すると、問題は、連続するすべてのページが両方の Cookie を送信することになり、両方の Cookie を確認するサーバーは、あなたがどの「ユーザー」として行動しているかを認識できなくなります。
これを回避する唯一の方法は、すべてのリンクに「スレッド」ID を渡すことです (つまり、すべてのサイト リンクをその場で書き換えたり、どのセッションを使用するfoo.bar?thread=2かを示したりします)、これは完全な悪夢であり、セキュリティは言うまでもありませんthread=1含意。
これを行う唯一の実際の方法は、ブラウザーサンドボックス化を使用することです。ユーザーは、特定のタブとすべての派生物が 1 つの Cookie セットを使用し、他のタブとすべての派生物が別の Cookie セットを使用することをブラウザーに伝えます。
本質的に、それは実際の方法で Web サイトによって解決できる問題ではありません。
この情報を格納する方法としては、実装するブラウザーに制御を委譲し、ユーザーが新しいセッションにフォークするタイミングを手動で示す以外に、実際には良い方法はありません。
「一度に 1 つのクライアントから複数のユーザーを使用するのは、なぜ悪い考えなのですか?」
これはまったく悪い考えではありませんが、HTTP を使用すると、この方法を余儀なくされます。
ほとんどのクライアント/サーバー プロトコルはステートフルです。クライアントはハンドシェーク中に 1 回だけ認証する必要があり、セッションはソケット接続によって表されます。接続が失われると、セッションが失われ、再認証が必要になります。したがって、1 つのプロセスで複数のセッション (同じユーザーまたは異なるユーザーとして) を許可するアプリケーションを作成するのは簡単です。
HTTP はステートレスです。クライアントは、リクエストごとに何らかの方法で再認証する必要があります。認証情報は通常、Cookie に保存されるため、最初の認証が完了すると、ユーザーは関与する必要がなくなります。ただし、Cookie はグローバルです。プロセス内だけでなく、一般的にアプリケーションのインスタンス/呼び出し全体でグローバルです。したがって、単一のセッションで立ち往生しています。
Web アプリの設計者は、この大きな制限を、HTTP がクライアント/サーバー アプリケーションの開発に適切なプロトコルではないという兆候と見なしたのではないかと思われるでしょう。
複数のログインが意味することの 1 つは、特権を管理する方法です。2 つのアカウントを持っているとします。一方にはユーザー アカウントを削除する権限があり、もう一方のアカウントにはこの権限がありません。
両方のアカウントに同時にログインできる場合 (どちらが優先されるか)、両方のアカウントの権限を結合したものとなりますか、それとも両方のアカウントが保持する権限の共通部分のみとなりますか?
特権の結合を持っている場合、これらの複数のアカウントからの特権を結合して、あまりにも多くの権限を与えることができますか? これは Sarbanes-Oxley コンプライアンスに何を意味しますか?
特権のグループである「ロール」に関して、SQL でも同様の問題が見られます。標準 SQL では、特定のアカウントは複数の役割を引き受けることが許可されていますが、一度に 1 つの役割しか引き受けることができません。これにより、過剰な権限の行使を防ぐことができます。
Firefoxで複数のセッションを実行するには、新しいプロファイルを作成します-run:firefox.exe -Pここで、異なるCookieを持つ複数のプロファイルを設定できます-firefox.exeを使用して、firefoxの複数のセッションを同時に実行できます-P"profileName"-no-remote。no remoteは、セッションごとに1つのウィンドウのみを許可しますが、同時に複数のセッションも許可します。
Cookie の状態はホスト ヘッダーに固定されています...
別のホスト名を使用するか、その IP アドレスを直接使用してサイトに接続します。サイトによっては、サイトに多数のローカル ホスト エイリアスを設定できる場合があり、各エイリアスには独自の Cookie 状態があるため、複数回ログオンできます。
サイトが特定のホスト ヘッダーを強制するためにサイト自体にリダイレクトする場合、エイリアシングは機能せず、複数のブラウザーを使用する必要があります。