2009-08-12 8 views
1

かなり大量のデータをクッキーに一時的に保存する必要のあるA/Bテストを設定しました。私のコードをテストしている間、私は4kB以上のクッキーを手に入れました。 SafariはCookieを設定します。後続のページの読み込みで、Cookieが大きすぎるためApacheがエラーを返しました。Safariで4kB以上のCookieを設定できるのはなぜですか?

私もFirefoxでこれをテストしました。クッキーは無視されますが、これは私にとって正しい動作であると思われます。

私は、これがGMailを直接手にする前に起こったのを見ました。私はバッドリクエストのエラーを取得するために使用し、私のクッキーを削除する必要があります。それは解決された既知の問題でした。

4kB以上のCookieを許可するSafariについては、何もオンラインでは見つかりません。これは潜在的に危険なことではありませんか?ユーザーが私たちのサイトにアクセスするのを妨げられ、何が起こっているのかわからないという考えは恐ろしいものです。彼らのクッキーが大きすぎると私たちの側からそれらのクッキーを削除することが可能になるかどうか私は頭の上からわかりません。

なぜSafariでこれを行うのですか?他のブラウザーを実行しますか?エラーが発生した場合、問題を修正についてここで何かがある

答えて

3

http://www.nczonline.net/blog/2008/05/17/browser-cookie-restrictions/は、FirefoxとSafariが4097個の文字にクッキーを許可することを述べているIE 4095とオペラ4096

、基本的にエラー文書は、問題のあるクッキーので、後続の要求をクリアhttp://www.webmasterworld.com/forum92/1163.htm

+0

ありがとうございました。リンクした2ページ目には、必要な場合に役立つヒントがあります。 – joshuaxls

0

標準では、特定ののサイズがのクッキー用に指定されています。ただし、最大サイズは指定しません。すべてのブラウザは、、少なくとも 4kbにある限り、任意のサイズのクッキーを保存できます。 ウェブ開発者は、すべてのブラウザで動作するCookieのみを作成しようとします。この時点であなたの手を握るのはサファリではありません。大規模なクッキーの状態を受け入れることで、他の人がそれを拒否するだけです。これは正解でも不正確でもありません。それは単に許可されます。

私は潜在的に危険であるというあなたの意見に従わない。ユーザーがサイトからブロックされている場合、設定しているCookieが一部のブラウザでは機能しないため、それはあなたの過ちですか? Safariは他のブラウザでは対応していません。

+0

はい、あなたは仕様について正しいです。私は、物事が設定されているということは残念だと思っています。それを拒否する大規模なクッキーとWebサーバーを受け入れるブラウザーでトラップに巻き込まれるのは簡単です。 Webkitはここの外れ者のようです。私がテストした他のブラウザはクッキーを受け入れません。 "bad request cookie"を検索すると、Google、Youtube、および他のサイトにこの問題が発生していることがわかります。それは危険です。しかし、私はあなたが正しいと思います。結局、あなたは自分以外の誰かを責めることはできません。 – joshuaxls

+0

この制限を回避する開発者の長い歴史があります。大量の情報を格納する必要がある場合は、ほとんどのサーバ側のフレームワークで「セッション」データを格納できます。つまり、クッキーは、実際の情報を含むサーバー上のデータベースエントリのキーに過ぎません。 asp.NETは、ページ全体を巨大なフォームにし、隠されたフィールドに情報を格納し、JavaScriptによるすべてのリンクのクリックをキャプチャします。 – Breton

+0

はい、私はよく知っていますが、1日に約1,000万ページビューを行い、できるだけDBの負荷を抑えようとしていますが、 – joshuaxls

関連する問題