- 締切済み
cookieについて教えてください
(A) webサーバー側の設定によって、cookieにパソコンのMACアドレス、コンピュータ名、フルコンピュータ名、またはパソコン内に存在するファイル名を記録させることは出来るのでしょうか? (B) セッションcookie がwebサーバーから与えられる時には、ドメインの指定も備わっているため、セッションcookieは同時にファーストパーティーの形態を取り、[ファーストパーティの Cookie をブロックする]設定にしていると セッションcookie もブロックすると考えていたのですが Internet Explorer で、[ファーストパーティの Cookie をブロックする][常にセッション Cookie を許可する]状態でyahooメールにログインできました。 なぜでしょうか? http://itpro.nikkeibp.co.jp/article/COLUMN/20080221/294407/ セッションcookieにはドメイン指定があると書いてあります (1. Webアプリケーションが、Set-Cookie: NAME=VALUE; expires=DATE; path=PATH; domain=DOMAIN_NAME; secure (NAME=VALUEのみ必須)という形式のHTTPヘッダーを含めて、レスポンスを返す。) (C) http://blog.tokumaru.org/2013/02/purpose-and-implementation-of-the-logout-function.html ログインには[BASIC認証]と[フォーム認証]がありますが、ログアウトした場合、[BASIC認証]ではパソコン内に保存されたcookieは削除されず、[フォーム認証]では削除されるのでしょうか? (D) http://blog.tokumaru.org/2013/02/purpose-and-implementation-of-the-logout-function.html [フォーム認証]では、パソコン内のcookieにはセッションIDが保存されるだけだとありますが、googleや楽天のような大手ではなく、小さなショッピングサイトの中には[フォーム認証]でもcookieにIDとパスワードを保存するところがあるのでしょうか? それとも、そもそも[フォーム認証]では、cookieにIDとパスワードを保存できない、または出来るとしても今は保存するサイトはまず無いと考えてよいのでしょうか? (E) yahooやgoogleのログイン画面では、[ログインしたままにする][ログイン状態を保持する]というチェックボックスがあります。 このチェックボックスにチェックを入れてログインすると、cookieにはセッションIDではなく、IDとパスワードが保存されることになるのでしょうか? (A)(B)(C)(D)(E)について教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- t_ohta
- ベストアンサー率38% (5292/13826)
> IEの[常にセッションcookieを許可]にチェックを入れない場合 > セッションcookieを常に拒否するということではなくて、ファーストパーティのcookie を受け入れる設定にしているなら > ファーストパーティのcookieがセッションcookieの時でも、そのセッションcookieを受け入れることを意味しているのでしょうか? cookieの仕様上セッションcookieという物が規定されている訳ではなく、IEの仕様として特定の名前が付けられたcookieデータをセッションcookieと呼んでいるのであって、基本的にはセッションIDはファーストパーティ(cookieのドメインとページのドメインが一致)のcookieの一部です。 なので、[常にセッションcookieを許可]という設定は万能な訳ではありません。 yahooメールが使っているセッションIDの名前がIEの仕様上セッションcookieでは無いと判断されただけでしょう。 > [ログインしたままにする][ログイン状態を保持する]にチェックを入れてログインした場合でも、ログアウトした時には > Cookieに保存したセッションIDを消す方法と、サーバ側で管理しているセッション情報を破棄してCookieに保存されているセッションIDを無効なIDとして扱う > ということになるのでしょうか? 基本的にはどちらか一方のデータを破棄すればセッションが無効になるので、サーバ側のプログラムを書く人の設計ポリシーで扱い方は決まると思います。 ただ、HTTP通信を盗聴されセッションIDが見られた場合、そのセッションIDを第三者が使用して本来のログインユーザーになりすます事が出来てしまう可能性があるので、消す場合は両方を消すべきだと私は思います。(実際の実装では他にもなりすまし対策をしますが)
- t_ohta
- ベストアンサー率38% (5292/13826)
(A) Webサーバー側からブラウザを介してPCのローカルデータにアクセスできないので無理です。 唯一出来る手段があるとすればActiveXを使ってローカルデータにアクセスする方法ですが、ブラウザのセキュリティー設定をかなり踏み込んで無効化しないといけませんので、デフォルト設定のブラウザでは無理です。 (B) セッション管理にCookieを使う事が多いですが必ずしもCookieである必要は無く、他にも実装手段はあります。 (C) Basic認証にはログアウトの概念がありません。フォーム認証の場合はCookieに保存したセッションIDを消す方法と、サーバ側で管理しているセッション情報を破棄してCookieに保存されているセッションIDを無効なIDとして扱う方法があるので、ログアウトしたからと言って必ずCookieが消されるわけではありません。 (D) IDは次回ログイン時の入力省略のために残っているサイトは時々ありますが、パスワードを保存するサイトはほとんど無いでしょうね。 古い実装のままのサイトが残っていればわかりませんが・・・ (E) ログイン状態を保持する場合はCookieの有効期限を長めに設定する方法をとる場合が多いです。 Cookieは有効期限を指定しない場合ブラウザを閉じた時点でデータが破棄され、多くの場合セッションIDに有効期限を指定せずにブラウザを閉じた時点で無効になるようにしています。 有効期限を数か月先とかに設定し、アクセスがある度に有効期限を更新するなどしてセッションIDを延命させればログイン状態を保持させることができます。
補足
>(B) セッション管理にCookieを使う事が多いですが必ずしもCookieである必要は無く、他にも実装手段はあります。 yahooメールに ○ファーストパーティのcookie をブロック ○常にセッションcookieを許可 にチェックしない の状態ではログインできませんでした。 ここからログインにはセッションcookieを使っていると思われます。 次に ○ファーストパーティのcookie を受け入れる ○常にセッションcookieを許可 にチェックしない の状態ではログインできました IEの[常にセッションcookieを許可]にチェックを入れない場合 セッションcookieを常に拒否するということではなくて、ファーストパーティのcookie を受け入れる設定にしているなら ファーストパーティのcookieがセッションcookieの時でも、そのセッションcookieを受け入れることを意味しているのでしょうか? >(E) ログイン状態を保持する場合はCookieの有効期限を長めに設定する方法をとる場合が多いです。 [ログインしたままにする][ログイン状態を保持する]にチェックを入れてログインした場合でも、ログアウトした時には Cookieに保存したセッションIDを消す方法と、サーバ側で管理しているセッション情報を破棄してCookieに保存されているセッションIDを無効なIDとして扱う ということになるのでしょうか?
補足
>基本的にはどちらか一方のデータを破棄すればセッションが無効になるので、サーバ側のプログラムを書く人の設計ポリシーで扱い方は決まると思います。 設計ポリシーでは、少なくとも [ログインしたままにする][ログイン状態を保持する]にチェックを入れてログインした場合でも、ログアウトした時には ○Cookieに保存したセッションIDを消す方法 または ○サーバ側で管理しているセッション情報を破棄してCookieに保存されているセッションIDを無効なIDとして扱う のどちらか1つまたは両方が採用されているということでしょうか?