セッション ID

更新日:

用語解説

セッションIDは、Webアプリケーションが、同じ利用者からの一連の要求を結び付けるために発行する識別子です。

■ 試験で押さえるポイント

  • 推測されないよう、安全な乱数で十分に長い値にします。

  • ログインに成功したら新しいIDを発行し直して、セッション固定攻撃を防ぎます。

  • URLには入れず、SecureとHttpOnlyを付けたCookieで送ります。

■ 過去問での着眼点

IDを盗まれて他人になりすまされるのがセッションハイジャック、攻撃者が用意したIDを使わせるのがセッション固定攻撃です。

例: ログイン前のIDを破棄して新しいIDを発行し、ログアウト時にはサーバ側でもIDを無効にします。

■ Cookie属性とサーバ側の失効

  • SecureはHTTPSでの送信、HttpOnlyはJavaScriptからのCookie読取り制限、SameSiteはクロスサイト要求へのCookie送信を制御する。HttpOnlyでもブラウザ内の悪性スクリプトによる操作全体は防げない。

  • ログイン成功や権限変更時は新しいIDへ切り替え、旧IDをサーバ側で無効にする。ログアウト時にブラウザのCookieだけを削除しても、盗まれたIDがサーバで有効なら再利用され得る。

  • アイドル期限と絶対期限を設け、盗まれたセッションは対象を特定して失効させる。SameSiteのsiteと同一オリジンは判定単位が異なるため、同じ親ドメインの別サービスも無条件に信頼しない。

音声で聞く

同じ分野の用語