問題タブ [jsessionid]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JSESSIONID はどのような条件で作成されますか?
いつ/どのような条件でJSESSIONID
が作成されますか?
ドメインごとですか?たとえば、Tomcat アプリケーション サーバーがあり、複数の Web アプリケーションをデプロイする場合、JSESSIONID
コンテキスト (Web アプリケーション) ごとに異なるアプリケーションが作成されますか、それとも同じドメインである限り Web アプリケーション間で共有されますか?
java - Cookie JSESSIONID 名の変更
単一の物理ボックスで複数の tomcat サーバーを実行する必要があるという要件があります。ブラウザからこれらにアクセスしているときに、ユーザーがアプリケーションを切り替えると、以前にアクセスしたアプリケーションがログアウトされます。これは、JSESSIONID Cookie の競合が原因です。
考えられる解決策の 1 つは、各アプリケーションを異なるコンテキストで実行することです。残念ながら、前に request.getContextPath() を追加してアクセスするリソースがないため、私のアプリケーションはコンテキスト パス設定では機能しません。
これにより、Cookie JSESSIONID の名前を変更して競合を解決する必要があります。これを行う方法はありますか?はいの場合、どのように?
私の質問を明確に述べていただければ幸いです。
注: 私のアプリケーションはすべて、同じマシンの別のポートで実行されています。
java - Tomcatサーブレットでjsessionidを無効にすることは可能ですか?
tomcat の URL で jsessionid を無効にすることはできますか? jsessionid は検索エンジンにあまり適していないようです。
jsp - jsessionid は、jstl によって生成されるすべての URL で発生します。鬼ごっこ
いくつかの奇妙なバグがあります: 一部のブラウザで初めてページを開くと、すべての参照に jsessionid パラメータ ( など<a href="/articles?name=art&jsessionid=5as45df4as5df"..>
) があります。
F5を押すか、他の方法でページを更新すると、すべてが消え、ブラウザを閉じるまですべてが正常に機能します(すべてのタブも閉じる必要があります)。もう一度開くと、この奇妙な jsessionid パラメータが表示されます。
すべての URL の作成に jstl<c:url..>
タグを使用します。
Cookieが無効になっている場合、jsessionidはCookieの代わりになることを少し前に読みましたが、Cookieは有効になっており、実際にはCookieを使用していません。
cookies - JRun/ColdFusionを使用してHttpOnlyCookieを強制する
CF7サイトのすべてのCookieがHttpOnlyとして設定されていることを確認する必要があります。
セッションを制御するためにjsessionidを使用していますが、JRunはこれをHttpOnlyとして作成しません。
既存のCookieを変更してこの設定を追加することは可能ですが、最初からHttpOnlyに設定する必要があります。
助言がありますか?
関連する質問:HTTPSCookieのセキュアフラグを設定します。
security - JRun / ColdFusionを使用したHTTPS(HTTPS / HTTPS混合サイトの場合)での安全なCookieの設定
ログインセクションとログアウトセクションの両方があり、セッションにjsessionidを使用するCF7で実行されているサイトがあります。
HTTPS(セキュアセクション用)に切り替える場合は、新しいセキュアセッションを開始し、jsessionidCookieに「セキュア」フラグを設定する必要があります。
JRunには「セキュア」を設定するオプションがありますが、それはオールオアナッシングの取引のようです。
HTTPSモードで常にセキュアを使用する方法はありますか?
関連する質問:すべてのCookieにHttpOnlyフラグを設定します。
tomcat6 - Tomcat 6 でのセッション追跡
Tomcat 6 でセッション追跡をオフにすることは可能です。つまり、Cookie JSESSIONIDの作成を回避します。
ありがとうルイス
java - Java SessionID:GET SessionIDパラメーターの名前を取得する方法は?
SessionIDを表すGETリクエストのParameter-Name(Tomcatのjsessionid = XXXXXXXXXXXXXXXXXXXXXXXXXXなど)は、servlet-specで標準化されていないようです。SessionIDの(Servelt Container Specific)名を取得するにはどうすればよいですか?(少なくともWebsphereでは、SessionID-Parameter-Nameの名前を変更する可能性があるようです)
=>根本的な問題は、セッションIDを使用してサーブレットALWYASのURLをエンコードする必要があることです。しかし、「response.encodeURL()」メソッドは、Cookieが無効になっている場合にのみこれを行うようです(=>したがって、URLを使用します-URLのsessionIDで書き換えます)。
サーブレットでセッションIDを使用してURLを常にエンコードするための代替手段は何でしょうか。最初の質問は、自分でセッションIDを作成したかったことを示していますが、したがって、標準化されていないように見えるsessionID-Parameter Nameが必要なので、どこかからParameter-Nameを取得する必要があります...)
更新:サーブレットコンテナによって提供されるSessionManagement機能を維持し、完全にオフにすることは目的ではありません。常にSessionURLを含めたいサードパーティシステムにコールバックURLを渡す必要があります。したがって、セキュリティの問題を最小限に抑えるために、この単一のURLを常にsessionIDでエンコードしたいだけです...
ヤンありがとうございます
tomcat - ページごとに複数のステートフルな iframe は JSESSIONID を上書きしますか?
同じドメイン上の 2 つの異なるステートフル ページを指す 2 つの iframe をデプロイすると、JSESSIONID が上書きされる可能性があるという私の理論を確認または反論する人を探しています。これが私が意味することです:
設定
- 正しく機能するために HttpSession 状態 (セッション アフィニティ) を必要とする 2 つのページがあり、 http: //www.foo.com/ page1 とhttp://www.foo.com/ page2 にデプロイされているとします。
- www.foo.com が、セッション ID に JSESSIONID を使用する Tomcat (6.0.20、fwiw) を実行している単一のホストであるとします。
- これらのページが 2 つの iframe ウィジェットに変換され、サード パーティのサイトに埋め込まれているとします: http://www.site.com/page1" /> (およびそれぞれ /page2)
- http://wwwの同じページに両方のウィジェットを配置したいサードパーティのサイトがあるとします。bar.com/foowidgets.html _
次の競合状態が発生する可能性はありますか?
- 新しい訪問者はhttp://www.bar.com/foowidgets.htmlにアクセスします
- ブラウザーは、2 つの iframe 'src' URL を含む foowidgets.html の URL の読み込みを開始します。
- ブラウザーは同じホストに対して複数の同時接続を開くため (chrome/ff の場合は最大 6 つ)、ブラウザーはたまたまhttp://www.foo.com/page1と http://www.foo.comの要求を同時に発行します。 /ページ2
- tomcat @ foo.com はほぼ同時に両方のリクエストを受け取り、(2 つの異なるスレッドで) getSession() を初めて呼び出し、2 つの HttpSession を遅延して作成します。また、リクエストはそれぞれのセッションにデータを詰め込みます (そのデータは後続のリクエストを処理するために必要になります)
- ブラウザが最初に page1 リクエストへのレスポンスを受信すると仮定します。ブラウザーは、HOST www.foo.com の Cookie JSESSIONID=$Page1 を設定します。
- page2 要求に対する次の応答が受信され、ブラウザー は HOST www.foo.com のCookie JSESSIONID を $Page2 で上書きします。
- ユーザーが foowidgets.html の「page1」iframe 内の何かをクリックします。ブラウザは http://www.foo.com/page1?action=doSomethingStatefulに 2 番目のリクエストを発行します。そのリクエストは JSESSIONID=$Page2 を運びます ($Page1 ではなく - Cookie の値が上書きされたため)
- foo.com がこのリクエストを受け取ると、間違った HttpSession インスタンスを検索します(JSESSIONID キーが $Page2 であり、$Page1 ではないため)。フーバー!
上記は起こりえますか?と思いますが、ご確認いただければ幸いです。
上記が明らかに可能である場合、ページごとに複数の iframe をサポートしたい場合、どのような解決策がありますか? iframe が同じ HttpSession を共有する必要はありませんが、それは良いことです。解決策が iframe ごとに別個の HttpSession を規定する場合、もちろん、iframe 1 が自分の代わりに iframe 2 の httpSession 状態を参照しないようにすることが必須です。
頭のてっぺんから次のことを考えることができます:
- page1 と page2 を異なるドメインにマップする (ops オーバーヘッド)
- URL 書き換えを使用し、Cookie を使用しない (分析を台無しにする)
- 他に何か?
どうもありがとう、ニキータ