###前提・実現したいこと
Apache+mod_perlにてCookieを利用するWebアプリを構築し、すでに商用運用に入っている状態です
Cookie処理にはApache2::Cookieを利用しているのですが、該当モジュールにおいてリクエストのCookie内に特定文字(例えばカンマ等)が含まれている場合に、モジュール内の処理にて例外が発生しシステムが異常終了してしまう事象が発生しております
Cookieにカンマ等の記号を含める場合、URLエンコードするのが正しく、Cookieを設定している側で修正を加えるのが正しいというのは理解しているのですが
該当Cookieが親ドメインを利用した別部署担当のシステムが設定し、ドメイン指定を入れているがゆえに、サブドメインを利用している担当システムに飛ばされて来ているという厄介な代物で
親ドメインを担当している部署に対しての修正依頼などが難しい、という事情があり…
該当のエラーについて、Apache2::Cookieのモジュール自体に改修を加えれば回避可能だとは思うのですが
・すでに商用稼働しているシステム
・モジュールに手を加えた際の、影響確認が広範囲にわたる
という点から、その選択肢もできれば避けたい状況です
長々と記載してしまいましたが、上記の前提よりperlモジュールでの処理を行う前に
Apacheの処理でリクエストCookieの値を変更する方針を検討し、それっぽく動くところまではできたのですが
いかんせん力押しという感じでスマートな対応とは言いづらい形となってしまっています
###試したこと
mod_rewrite、mod_headerの組み合わせにてCookieに特定文字が含まれた場合にリクエストヘッダーのCookie値を書き換えることにより実現可能と踏んで
とりあえず以下のような設定を.htaccessに記載することで書き換え可能なところまでは行けました
RewriteCond %{HTTP_COOKIE} (.*) RewriteRule .* - [E=cookie_value:%1,NE] RewriteCond %{HTTP_COOKIE} (.*),(.*) RewriteRule .* - [E=cookie_value:%1%2,NE] RewriteCond %{HTTP_COOKIE} (.*),(.*),(.*) RewriteRule .* - [E=cookie_value:%1%2%3,NE] RewriteCond %{HTTP_COOKIE} (.*),(.*),(.*),(.*) RewriteRule .* - [E=cookie_value:%1%2%3%4,NE] RequestHeader unset Cookie RequestHeader add Cookie "%{cookie_value}e" env=cookie_value
ただ、この記述だとみての通り想定されるカンマの数により全パターンの条件を追記する必要があり
カンマ以外の文字が含まれた場合などはさらに条件を追加しないといけないなど、正直スマートな対応とは言えない状態と思っています
特定の文字列を除去した値を後方参照で取り出すような記述方法が思いつかず
よりスマートな定義方法で対応が可能であれば、ご教示いただければと思います
###補足情報(言語/FW/ツール等のバージョンなど)
Apacheバージョン:2.2.15-39.0.1

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。