Webアプリケーションにおけるセッション管理についての私なりのまとめ
- 認証時にセッションIDを発行し、HTTPリクエストに含まれるセッションIDで認証済み状態を維持する手法を「セッション管理」とよぶ(すなわち、セッション管理は「認証」とは別物である)
- 認証やセッション管理の不備によるセッションID漏洩に備えることを「セッションハイジャック対策」とよぶ(つまり、セッションハイジャック対策は、認証ともセッション管理とも別物である)
- 認証とセッション管理がセキュアならば、セッションハイジャック対策は不要である。したがって開発者が注力すべきは、認証とセッション管理をセキュアに保つことである
- 携帯電話の識別情報(端末IDなど)は、認証にもセッションハイジャック対策にも使うべきではない。認証に使うのは、セキュリティ面でもプライバシー面でも問題がある。セッションハイジャック対策に使うのなら始めから認証に使えばよいが、前述の問題があるためそうすべきではない
おかしなところがあれば、ぜひご指摘ください。