web-dev-qa-db-ja.com

Webサイトからログアウトした後、ブラウザウィンドウを閉じる必要があるのはなぜですか?

私は間違っているかもしれませんが、ログアウト後にブラウザウィンドウを閉じる要求が一般的であると思います。さらに重要なのは、ブラウザがブラウザウィンドウを閉じずに脅威を軽減できない理由です。最後に、ブラウザを閉じることは、ブラウザ内のウィンドウ/タブを閉じることよりも優れていますか?

40
blunders

少し検索したところ、一部の銀行は、ユーザーがログアウトした後、ユーザーまたは悪意のあるWebサイトが永続的なCookieを再利用できるようにする銀行への攻撃に続いて、このアドバイスを提供しているようです。そのため、ブラウザはまだCookieをクリアしていませんでした。

このような脆弱性が発生する可能性がある理由は、次の2つのセキュリティメカニズムのいずれかが失敗したことを示しています。

  • ブラウザーはサイト間に厳密な same-Originポリシー を課しておらず、サードパーティのサイトが銀行サイトのCookieにアクセスできるようにしています(または共有コンピューターの場合、タブを開いたままにし、そのタブが使用されていました信頼されていないサードパーティユーザー)
  • 銀行のウェブサイトがログアウトしたため、Cookieを無効にしていない、または誤って無効にしている

私に関する限り、この「アドバイス」は、ユーザーに対する自分の責任を拒否するために一部のWebサイトで使用されているセキュリティシアターであるとすでに結論づけることができます。これは明らかに、それが実際に発生した問題を修正するのではなく、愚かな措置を適用する努力と時間を浪費するようユーザーにインセンティブを与えるので、非常に間違っています。

[〜#〜] owasp [〜#〜] によると、ユーザーをログアウトする際、Webサイトには2つの役割があります。

  1. サーバー側のユーザー状態を無効にします。これにより、クライアントクエリが再生または作成されなくなります。
  2. ブラウザーのセッションCookie(およびWebアプリでWebサイトで認証されたユーザーのみが通常アクセスできる情報を含むCookie)を無効にして、クライアントブラウザーの次のユーザーが利用できる情報が残っていないことを確認します。
  3. ウェブサイトは少し先に進むこともできます デバイスで開いているすべてのタブがユーザーのログアウト時に更新されることを確認してください 。これにより、ユーザーは背後にあるすべてのタブを確実に閉じる必要がなくなります。

したがって、ウェブサイト開発者がその義務を尊重する世界では、そのようなばかげたアドバイスに従うための根拠はありません。そして、ウェブサイトがそうでない場合、それらはおそらく ユーザーの個人データを保護するために必要な手段を講じないことに責任を負います

38

次の場合は、(個人情報の開示を避けるために)Webブラウザを閉じる必要があります。

  1. あなたがした後に誰かがコンピュータにアクセスするかもしれません

  2. (機密情報の)HTTP応答がCache-Controlヘッダーを正しく設定しない

たとえば、yourbank.comにアクセスして、アカウントを確認します。ログアウトをクリックします。戻るボタンをクリックします。アカウント情報は表示されていますか?一部のサイトでは、そのキャッシュヘッダーに応じて、そうでないサイトもあります。

Yourbank.comにアクセスして、アカウントを確認します。 URLをメモします。ログアウトをクリックします。ブラウザを閉じます(すべてのウィンドウ/プロセス)。表示されたURLでブラウザーを再度開きます。アカウント情報は表示されていますか?貴方はするべきではない。

正しいHTTPヘッダーは次のとおりです。

Cache-Control: no-store, must-revalidate

ユーザーが同じサイトを複数のタブで開いている可能性がある場合(ただし、ログアウトは1つだけ)、次のヘッダーを使用して、ブラウザーにページを再読み込み(ログイン画面を表示)させることができます。

Refresh: N

Nは、ユーザーのセッションが期限切れになるまでの秒数+小さなバッファーです。それはまだ一定期間脆弱ですが、永久ではありません。

8
Neil McGuigan

このアドバイスは、シングルサインオン(SSO)ソリューションに対してよく提供されます。これは、ユーザーが一度だけログインするシステムのコレクション用です。ユーザーの認証は、アイデンティティプロバイダーと呼ばれる中央システムによって処理されます。ログイン後、要求されたシステムとIDプロバイダー自体との2つのセッションが確立されます。新しいシステムにアクセスすると、IDプロバイダーとの既存のセッションを使用して、資格情報を再度要求することなく、この新しいシステムとのセッションが作成されます。

訪問した各システムのセッションを無効にする必要があるため、シングルログアウト(SLO)の実現は複雑な問題です。 SLOは多くの場合、ブラウザを閉じるようにこのアドバイスを与えるだけで実装され、それによってすべてのセッション資格情報が無効になります。

5
Jasper

この方法は、「ログアウト」する方法がないため、Webサイトが基本認証またはWindows認証を使用する場合によく使用されます。 Cookieを使用する代わりに、認証メカニズムがWebサイトに送信されるすべてのリクエストにAuthorizationヘッダーとして追加されます。基本認証の場合は、base64エンコードされた文字列のユーザー名/パスワードであり、Windows認証の場合は、NTLMまたはKerberos認証に関連する値が含まれます。したがって、ブラウザを閉じることが最も速く、最も安全な修正です。

これは、Cookieを期限切れにしてアプリケーションからセッションを削除するだけでセッションを閉じることができるフォーム認証の使用とは対照的です。

2
user2320464

銀行が何を考えているのかを知るのは難しいですが、銀行や他の機密サイトからログアウトした後にブラウザーを閉じることには大きなメリットがあります。

ブラウザは完璧ではなく、完璧になることは決してありません。ブラウザのメモリ空間には、ユーザー名、パスワード、トークン、アカウント残高などの機密情報が含まれている可能性があります。攻撃者はこれを利用できないようにする必要がありますが、完全に安全なプログラムはありません。 Heartbleedで見たように、エクスプロイトはその機密情報を第三者に漏らす可能性があります。ブラウザを閉じてまったく新しいプロセスを開始すると、メモリが消去され、この潜在的なリークの可能性がなくなります。

0
Steve Sether