web-dev-qa-db-ja.com

ApacheにはCookieのサイズに制限がありますか?

アプリケーションのバグにより、大きすぎるCookieを設定しました。

クライアントは、アプリケーションが実行される前に発生するエラーを受け取ります(mod_python)。

Cookieヘッダーの大きさについて、Apache内に調整可能な制限はありますか?

Apacheエラーログ内に、次のように表示されます:request failed: error reading the headers

4
rhettg

Apacheの構成の LimitRequestLineディレクティブ を参照してください。デフォルトは8190であるため、それよりも大きいものは問題を引き起こす可能性があります。

このディレクティブは、HTTPリクエストラインで許可されるバイト数を設定します。

LimitRequestLineディレクティブを使用すると、サーバー管理者は、クライアントのHTTP要求行の許可されるサイズの制限を増減できます。リクエストラインはHTTPメソッド、URI、プロトコルバージョンで構成されているため、LimitRequestLineディレクティブは、サーバーでのリクエストに許可されるリクエストURIの長さに制限を課します。サーバーでは、この値が、GET要求のクエリ部分で渡される可能性のある情報を含め、リソース名を保持するのに十分な大きさである必要があります。

このディレクティブにより、サーバー管理者は異常なクライアント要求の動作をより細かく制御できます。これは、ある種のサービス拒否攻撃を回避するのに役立つ場合があります。

これは、個々のCookieだけでなく、Webページ上のすべてのCookieの合計の制限であると私は信じています(ただし、それについては肯定的ではありません)。ただし、WebサイトのすべてのCookieは単一のリクエストヘッダーを使用して送信されるため、Webページに十分なCookieがあり、合計がLimitRequestLineディレクティブの値を超えると、問題が発生します。

4
runlevelsix

1つのCookieに複数の値を格納するプラグインを使用できます。

https://github.com/pavelkukov/localdata

Getリクエストのサイズに対するApacheのデフォルトの制限は8kです-2つの完全なCookie。

0
pavelkukov