コンピュータサイエンスでは、セッション識別子、セッションID、またはセッショントークンは、ネットワーク通信(多くの場合HTTPS経由)で使用されるデータであり、一連の関連するメッセージ交換であるセッションを識別するために使用されます。 [ 1 ]セッション識別子は、通信インフラストラクチャがHTTPなどのステートレスプロトコルを使用する場合に必要になります。たとえば、販売者のWebサイトを訪れた購入者が、仮想ショッピングカートに複数の商品を集め、サイトのチェックアウトページに移動して買い物を完了したいとします。これは通常、クライアントが複数のWebページを要求し、サーバーがクライアントに返送するという継続的な通信を伴います。このような状況では、買い物客のカートの現在の状態を追跡することが不可欠であり、セッションIDはその目的を達成する1つの方法です。
セッションIDは通常、サイトへの初回訪問時に訪問者に付与されます。ユーザーIDとは異なり、セッションは通常短命であり(一定時間(数分または数時間)の非アクティブ状態が続くと期限切れになります)、特定の目的が達成されると無効になる場合があります(例えば、購入者が注文を確定すると、同じセッションIDを使用してさらに商品を追加することはできません)。
セッション ID は Web サイトにログインしたユーザーを識別するためによく使用されるため、攻撃者がセッションを乗っ取って権限を取得するために悪用される可能性があります。セッション ID は通常、総当たり攻撃によって有効なセッション ID を取得する確率を低くするためにランダムに生成された文字列です。多くのサーバーは、攻撃者がセッション ID を取得した場合に備えて、クライアントの追加検証を実行します。セッション ID をクライアントのIP アドレスにロックすることは、攻撃者が同じアドレスからサーバーに接続できない限り、シンプルで効果的な対策ですが、クライアントがサーバーへの複数の経路 (冗長なインターネット接続など) を持ち、クライアントの IP アドレスがネットワーク アドレス変換 (NAT ) を受ける場合は、逆にクライアントに問題を引き起こす可能性があります。
プログラミング言語がクッキーに名前を付ける際に使用する名前の例としては、JSESSIONID ( Java EE )、PHPSESSID ( PHP )、ASPSESSIONID ( Microsoft ASP ) などがあります。