セッションを管理するクッキーに有効期限を設定すべきか否か
OWASP Session Management Cheat Sheet の Cookies > Expire and Max-Age Attributes セクション(JPCERT日本語訳)では、Expires
及び Max-Age
が設定されていないクッキー(non-persistent cookies)はブラウザインスタンスが終了すれば強制的に消されるので、セッション管理にはこのnon-persistent cookiesを用いることを 強く推奨する(highly recommended) 、とあります。
一方で、この文章中に登場する「ブラウザインスタンスの終了」がどのタイミングを指すのか自明では無いのでは、という懸念があります。
例えば次のリンクにあるような挙動は(少なくとも私の)予想に反します。
(いずれも少し古い記述のようなので、現在もこの通りなのかはわかりませんが。)
- Chrome doesn't delete session cookies - Stack Overflow
- スマホブラウザでのセッションクッキーの有効期限 - HTML5/CSS3, JavaScript 次世代WEB研究開発
今回、有効期限を長くとも1時間程度のセッションを管理しようと考えています。
上記のような挙動を考えると、persistent cookiesを用いても問題ないのでは(むしろnon-persistent cookiesよりは確実に管理(削除)できるのでは)、と考えたのですが、何か理解を誤っている/問題を見落としているでしょうか。