サーブレット API (JSF または JSP ページなど) を使用して Java Web アプリケーションを実行すると、ユーザーのセッションを識別するために「一意の」SessionID がどこかで生成されます。
これらのセッションIDがどのように生成されるのか疑問に思っています。クライアントの IP は含まれていますか? タイムスタンプ?乱数?
第二に、この世代はどこで発生するのだろうか?これは、アプリケーションを実行するサーバーに依存していますか?
サーブレット API (JSF または JSP ページなど) を使用して Java Web アプリケーションを実行すると、ユーザーのセッションを識別するために「一意の」SessionID がどこかで生成されます。
これらのセッションIDがどのように生成されるのか疑問に思っています。クライアントの IP は含まれていますか? タイムスタンプ?乱数?
第二に、この世代はどこで発生するのだろうか?これは、アプリケーションを実行するサーバーに依存していますか?
コンテナ固有です。Tomcat: http://tomcat.apache.org/tomcat-7.0-doc/security-howto.html#Manager
通常、java.security.MessageDigest
アルゴリズムが使用されます。
通常、生成されるIDは、必要な長さまでの一連の乱数ですが、さまざまなサーブレットコンテナで使用されるアルゴリズムによって異なります。
たとえば、Tomcat6では、次を確認してください。
ManagerBase.sessionIdLength
と
ManagerBase.createSession() //which calls generateSessionId()
http://www.docjar.com/html/api/org/apache/catalina/session/ManagerBase.java.htmlを参照してください
「識別子はサーブレット コンテナによって割り当てられ、実装に依存します。」
jsessionid は、新しいセッションが作成されるたびに生成されます。