web-dev-qa-db-ja.com

ApacheでCookieを削除する方法

サーバーに到達するHTTPリクエストからCookieを削除する必要があります。クライアント(このCookieを書き込む)またはサーバー(それを読み取る)でそれを行うことはオプションではありません。クライアントとサーバー間でリクエストをプロキシするApache2.0があるので、mod_rewriteを使用してApacheでCookieを削除したいと考えていました。

私の質問は、mod_rewriteを使用してHTTPリクエストから特定のCookieを削除する方法はありますか?

one cookieだけを削除できない場合は、リクエストからall cookieを削除する最後の手段として?

Mod_rewriteがこのタスクに適切なツールではない場合、これを実現する方法について他の提案を受け入れます。

16

Apache mod_rewriteはURLの操作を許可しますが、HTTPヘッダーの操作は許可しませんが 'mod_headers' はそれを可能にします。

したがって、次を使用できます。

RequestHeader unset Cookie

これにより、リクエストからallCookieが削除されます。この手法を使用して特定のCookieのみを削除できるかどうかはわかりません。

または、次を使用してCookieがクライアントに返されるのを停止することもできます。

Header unset Set-Cookie

それがより適切な場合。

24
Andy

Apache> 2.2.4の場合、 使用できたはずです

RequestHeader edit Cookie "^(.*?)ANY_COOKIE=.*?;(.*)$" $1$2
10
Anthony O.

Apacheリバースプロキシ設定で次のステートメントを使用して、特定のCookieを管理できます。

使用できる特定のCookieを削除するには:
'Header add Set-Cookie "ANY_COOKIE =' '; expires =' SOME_DATE_IN_PAST '; Max-Age = 0; Path = COOKIE_PATH"'

過去の日付を指定することにより、Cookieの有効期限が切れたことをブラウザに通知し、ブラウザはCookieを破棄します。

使用できるCookieを追加するには:
'ヘッダー追加Set-Cookie "ANY_COOKIE =' ANY_VALUE '; expires =' SOME_FUTURE_DATE '; Path = COOKIE_PATH"'

必ず将来の日付を指定してください。日付を指定しない場合、CookieはセッションCookieとして扱われます。

以下を使用して、リクエストから特定のCookieを削除してみてください。

'RequestHeader add Cookie "ANY_COOKIE =' '; expires =' SOME_PAST_DATE '; Path = COOKIE_PATH"'

9

これを使用してすべてのCookieの設定を解除します(静的コンテンツを提供するのに適しています)

Header unset Cookie
Header unset Set-Cookie
1
Dylan B