2009-09-04 1 views
5

私は大きなクッキーを使って多くのユーザーデータを保存するPHP Webアプリケーションを持っています。 Apacheサーバでmod_gzipを設定すると、ページの内容だけが圧縮されるのでしょうか、それともCookieも圧縮されますか?mod_gzipはクッキーを圧縮する

答えて

12

いいえ、コンテンツのみを圧縮します。クッキーは圧縮されないヘッダーで送信されます。

6

圧縮はmod_gzipのクッキーでは起こりませんが、クッキーが大きくなることがわかっている場合は、いつでもクッキーデータを圧縮することができます。クッキーを作成するときにデータを圧縮し、クッキーを読むときに圧縮解除します。 の署名を確認してから、の解凍を行って、コードに対するDoS攻撃を回避してください。

+1

さらに、機密情報をクッキーに保存することは決して完全に安全ではありません。 – Havenard

+0

PHPは、 'gzencode'(HTTPの' deflate'ファイル形式)、 'gzcompress'(HTTPの' gzip'ファイル形式)、 'gzdeflate'(実際の* DEFLATE *データ形式)のような圧縮関数を既に使用しています。だから私は、サービス拒否攻撃を自分自身で守るための署名がさらに必要になるのではないかと疑う。 – Gumbo

+2

クッキーを圧縮すると、おそらくワイヤ上にバイトが保存されず、さらにトラフィックが発生する可能性があります。クッキーはURLエンコードされているので、英数字以外の文字はすべて3倍のスペースをとり、圧縮による保存を無効にします。たとえば、 'urlencode(gzcompress(" this is a text "、9))'は元の "uncompressed"サイズの3.5倍の54文字の文字列を返します。 –

4

ここで間違った問題に集中していると思います。

どの時点でクッキーを圧縮するのが良いかもしれないと感じるとき、あなたは明らかにクッキーシステムを悪用しています。

ログインコンテキストなどの一意のIDのように、Cookieに最小限のデータを保存すると、ユーザーデータ全体がCookieに格納されません。

基本的には、クッキーを圧縮する必要はありません。あなたがするなら、あなたは何か間違ったことをしている。

あなたの質問に答えるには、クッキーを圧縮しません。それらはコンテンツとは別に送信されます。

+0

非常に良い点。 Cookieは、サーバーに保存されているユーザーデータのキー/識別子でなければなりません。 – bucabay

+0

常に良いとは限りません。私はこれが少し一般化したと思う。現在のシステムでは、いくつかのクッキーを使用していますが、合計で4kの限界に近づきます。認証にWIFによって使用されるFedAuth Cookieはかなり大きいです。 WIFはクッキーシステムを誤っていますか?無礼を意図していない:) – kurasa

関連する問題