HTTPとHTTPSとCookieとSecure属性

HTTPとHTTPSが混在するサイトにおけるCookie管理はどうあるべきかを考察。

HTTPS用のCookieにはSecure属性を設定しなければならないが、その場合HTTPでそのCookieを使用することが出来なくなってしまう。
HTTP用とHTTPS用に2つのセッション管理用Cookieを発行して管理すればよいのだけれど、その場合アプリケーションサーバが持つデフォルトのセッション管理機能が使用出来なくなってしまう。

どんな方法が一番手軽で管理しやすいんだろう?とりあえず、今考えている方法をメモ。

1.セッション管理用Cookieアプリケーションサーバが発行するCookieを使用。Secure属性は設定しない。
2.HTTPSのページで使用するSecure属性を設定したCookieを発行。
3.1で発行したCookieに2で発行したCookieを関連付ける。

HTTPのページにアクセスがあった場合は普通にセッションを使用。HTTPSのページにアクセスがあった場合は、1のセッションIDに関連付けられた2のCookieと、送られてきたCookieを比べて一致していることを確認する。
どのページがHTTPを許容して、どのページがHTTPSしか許容しないという設定は、プログラム内で制御。
という感じでいけるみたい。実装もちょちょいと出来そう。