- PR -

Cookieのメリット・デメリット

投稿者投稿内容
cyanberry
常連さん
会議室デビュー日: 2005/01/07
投稿数: 37
投稿日時: 2005-07-11 23:10
Tomcat5.0.29単体でサーブレットを構築しています。

今までサーバ1台にて運用していたのですが、パフォーマンスと永続性の向上のために複数台に分散することにしました。

そこで、今までセッション変数にてセッション情報を管理していたものを、セッション情報を共有しなくても良いように、Cookieに必要最低限の情報を保存することにしました(※Apacheを用いてスティッキーセッションを実現してみましたが、思ったよりパフォーマンスは上がりませんでした・・・)。
動作的には問題なく動いており、ApacheBenchでの性能はそこそこ出ているのですが、本当に問題が無いか不安です。

そこで、Cookieを使用する際のメリット・デメリット等ご教授いただきたいです。パフォーマンス・セキュリティからの観点や、「こういうことをされるとやばい」など、みなさんのCookieに関する開発経験を教えてください。

くだらない質問かもしれませんが、よろしくお願いいたします。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-07-11 23:41
余計なお世話かもしれませんが・・・

Tomcat5.0ならクラスタ機能があるので、
セッションでの情報共有は問題ないですよ。
しいて言えば、セッションに格納するインスタンスは、
Serializableを実装しなければいけないぐらいです。
masa
大ベテラン
会議室デビュー日: 2005/05/11
投稿数: 108
投稿日時: 2005-07-12 10:57
こんにちは。

引用:

cyanberryさんの書き込み (2005-07-11 23:10) より:
そこで、Cookieを使用する際のメリット・デメリット等ご教授いただきたいです。パフォーマンス・セキュリティからの観点や、「こういうことをされるとやばい」など、みなさんのCookieに関する開発経験を教えてください。



書き換えられたら問題のある情報はCookieへ保存してはダメですね。
例えばuserAuthという名前で管理者権限を判断している場合などはクライアント側で
userAuth=Normal → userAuth=Admin に書き換えることが可能などの危険があります。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-07-12 12:29
別言語ですが、クッキーにキーだけを保存して、
情報取得はサーバがそのキーからDBにアクセスして取得する
って事をやったことがあります。

分散に対応していない環境だった為ですが、
遅いかなってくらいで、セッション同様に使用していました。

これは似たような話ですが・・・
以前WEB上でのゲームでポイントが貯められるサイトがあって、
ログイン不要でもポイントが保持されていました。
これはクッキーだなと思い、改造してポイントゲットだと思い
解析してみましたが、暗号化されていました。。。
簡単に書き換えできたら、みんなが大量にポイントを取得できますよね。

では。
cyanberry
常連さん
会議室デビュー日: 2005/01/07
投稿数: 37
投稿日時: 2005-07-12 15:50
回答有難うございます。

>かつのりさん
Tomcatのセッションレプリケーションも試してみましたが、リダイレクトすることが多いつくりのため、セッション共有が間に合わないことがあり、却下しました。

>masaさん
書き換えられて困る情報は暗号化など必要ですね。

一つ懸念があるのですが、cookieを大量に保持しているユーザから該当のcookieを取得する場合は、処理が重くなってしまうのでしょうか?
冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2005-07-12 16:20
引用:

一つ懸念があるのですが、cookieを大量に保持しているユーザから該当のcookieを取得する場合は、処理が重くなってしまうのでしょうか?


大量に・・・って考えるより先に、長さ決まって無いのかなぁ?と調べてみては?

(確か・・・長さに制限があったよーな。)
masa
大ベテラン
会議室デビュー日: 2005/05/11
投稿数: 108
投稿日時: 2005-07-12 16:28
引用:

cyanberryさんの書き込み (2005-07-12 15:50) より:
書き換えられて困る情報は暗号化など必要ですね。


そうですね、強度の高い暗号化が必要ですね。

引用:

一つ懸念があるのですが、cookieを大量に保持しているユーザから該当のcookieを取得する場合は、処理が重くなってしまうのでしょうか?



どれほど処理が重くなるかはわかりませんが、1つのWEBサーバが扱えるクッキーの
サイズ上限は4KB、最大個数(変数の数)は20個までという(厳密に言うと最低これ
だけは扱えるようにすべきという)仕様があるようです。

この制限は少々気になるところですが、問題ないでしょうか?
cyanberry
常連さん
会議室デビュー日: 2005/01/07
投稿数: 37
投稿日時: 2005-07-12 17:48
回答有難うございます。

すいませんcookieについてなにも分からないのですが、ここで言うcookieのサイズ上限、最大個数とは、1つのサイトが発行するcookieの上限のことでしょうか?

IEだと、Cookiesの下にサイト毎にcookieのファイルができますが、そのファイル数が大量にあっても、WEBサーバは自分の発行したcookieだけを見るので問題ないということでしょうか?

稚拙な質問ですいませんが、よろしくお願いします。

それと、cookieを改ざんしたらどうなるか検証しようと思い、cookieファイルをテキストエディタで編集し、サイトにアクセスしたところ、cookieは無効となり、自動的に削除されてしまいましたが、これはIEの仕様なのでしょうか?それとも、Tomcatがやっているのでしょうか?

スキルアップ/キャリアアップ(JOB@IT)