- - PR -
Cookieのメリット・デメリット
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-07-12 18:19
Cookieについて詳細な解説ページがありましたので、リンクを貼っておきます。
http://www.studyinghttp.net/cookies
んー?すいません。これはちょっと分からないです。 | ||||
|
投稿日時: 2005-07-12 19:11
自己レスです。
いろんなブラウザでcookie改ざんしてみました IEの場合・・・改ざん無効 cookieも削除される ネスケの場合・・・改ざん有効 operaの場合・・・改ざん無効 改ざんしても、改ざん前に戻っていた。 改ざんするとこが違ったのかも ってわけで、ブラウザ仕様でしょうか? | ||||
|
投稿日時: 2005-07-12 20:56
>masaさん
ありがとうございます。参考になりました。 先ほどの補足ですがIEのcookieの改ざんは無効と書きましたが、違いました。改ざん可能です。 cookieのファイルのファイルサイズを変えないように改ざんした場合は、有効となりました。 今は、セッション毎にcookieを使い分けられないか調査中です。ご存知の方おりましたら、ご教授お願いいたします。 | ||||
|
投稿日時: 2005-07-13 10:41
こんにちは。
これは複数ブラウザ起動時の対応という認識であっていますでしょうか。 (間違っていたらごめんなさい。) そうだと仮定すると、、 Cookieの有効期限としてMax-Ageという属性があるのですが、この値が負 である場合ブラウザの終了とともにCookieは削除されます。 ということは、ファイルに保存する必要がないのでブラウザの実装として はメモリ上の管理で簡潔されることが多いのではないかと思います。 この場合、ローカルCookieファイルの値上書きなどは発生しないので、 javax.servlet.http.CookieのsetMaxAgeに負の値を指定(デフォルト値が 負の値かもしれません)してあげれば、複数ブラウザ起動時の対応は可能 なように思います。 調査した訳ではないのであまり自信はありませんが、ご参考までに。 | ||||
|
投稿日時: 2005-07-13 12:20
>masaさん
度々回答有難うございます。 実際に検証してみたところ、masaさんの言うとおりでした。setMaxAge(-1)だと、cookieのファイルが生成されず、また、IEを複数立ち上げてもそれぞれのセッションのcookieを読んでくれるようです。ただし、「新規作成」→「ウィンドウ」でウィンドウを開くと、同じセッションになってしまうのでそもそも駄目なようです。 Netscapeは複数起動しても、同じセッションになってしまうようですね。 Operaも複数起動しても、最初に起動したウィンドウのタブが増えるだけで、セッションは一緒のようです。 というわけで、setMaxAge(-1)でブラウザの複数起動に対応できるようです。 さらに、cookieファイルが生成されないので、改ざんもされない(“にくい”だけ?)ということで、一石二鳥です。 masaさんのおかげ様で目的のシステムを構築できそうです。 再三のご教授ありがとうございました! | ||||
|
投稿日時: 2005-07-13 13:05
>さらに、cookieファイルが生成されないので、改ざんもされない(“にくい”だけ?)ということで、
改ざんは可能です。 あえて方法は書きませんけど。 | ||||
|
投稿日時: 2005-07-13 13:20
cookieの改竄は、cookieファイルを開いて書き換えるだけではなく、
送信するHTTPリクエストのヘッダ情報を操作することで書き換えることができます。 メモリcookieでも、操作するタイミング(と盗聴の可能性)はあります。 (といっても、お手軽には出来ないと思いますが・・・ 既に言われていますが、書き換えられてもよい情報だけを保存、 書き換えられるとまずい情報を保存しないといけない場合は暗号化を。 ただ、暗号化もすぐに陳腐化(といっても数年スパンでしょうけれど)するので 基本的に暗号化して保持するのではなく、暗号化そのものをしなくても 良い情報だけを扱うようにするのが堅実だと思います。 もっとも、何でもそういう方針ではなく、システムの要求の範囲で適度に、 でしょうけれど。 ・・・ などと書いてみましたが、#9のmasaさんのあげられているリンク先のページに、 章立てて詳しくまとめてありましたので、そちらをご覧になるほうが確実ですね(^_^;; |