• 締切済み

jsessionidの有効期限を延長する方法

自動的にjsessionidがCookieに保存されますが、この有効期限を「ブラウザを閉じるまで」ではなく、明示的に設定(2009-10-15まで)する方法はありますか? サーバでのsession-timeoutはすでに延長していますが、ブラウザ側で延長する方法が見つからず、困っています。 環境はJDK6, Tomcat6.0です。

みんなの回答

noname#120325
noname#120325
回答No.1

jsessionidを上書きしたらどうでしょうか。jsessionidの値を取得し、それに有効期限を設定したjsessionidクッキーを新たに作成して追加したら、上書きされ変更できそうな気がしますが。 ただ、固定されたセッションIDをブラウザ終了後まで保管することの意味がよくわからないのですが。セキュリティの関係上、必要に応じてセッションIDを再発行することもよくありますし、ブラウザでクッキーが使えないときにはクエリー文字としてセッションIDが渡されることもありますし。単なる実験なら別ですが、実用として考えているシステムでは避けるべきことと思うのですが、何か特別な理由があるんでしょうか。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • セッションクッキーの有効期限について

    VC2010でWebアプリケーションを作成しております。 セッションクッキーを使用しているのですが、Webブラウザを閉じた時には、きちんと消えてくれますが、一定時間(20分)が経過したときは、消えてくれません。 数時間経っても、消えませんでした。 ちなみに、セッションクッキーではなく、セッション情報は、一定時間(20分)が経過した後、消えています。 下記、URLでは、一定時間が経過したときに消去されるようなことが書いてあります。 セッションCookie http://www.asp-user.jp/help/session_cookie/ timeoutに関しては、web.configで<sessionState timeout="20" />のように設定しております。 一定時間が経過したとき(timeout)の設定方法は、これ以外に何が必要でしょうか? WEBサーバ、もしくは、セッションステートサーバ側の設定(IIS)が必要でしょうか? IISのバージョンは、7.5です。 サーバの構成は、下記のようになっております。 ・WEBサーバ ・DBサーバ ・セッションステートサーバ(DBサーバと同じサーバ)

  • PHPセッションの有効期限の調整

    ログイン処理を有するサイトをPHPで記述しています。ログインがあればセッション変数に値を格納し、このデータがあれば、再度ページのアクセス時にパスワードを要求を省略するようにプログラムを進めています。 ここで質問なのですが、セッションが有効になっているあいだに、対象ページへのアクセスがあったときに、そのセッションの期限を延長する方法はありますでしょうか。 また、session.cookie_lifetimeは、プログラム内でクッキーの制御を特に明示していない場合は、どのタイミングが起点として時間が決まるのでしょうか。

    • ベストアンサー
    • PHP
  • ■(ログイン)セッションの有効期限の設定法について

    いつも、お世話になっております。(PHP5.2.5) セッションの有効期限の設定方法について色々調べましたが、 解決できなかったため、質問いたします。 --- 例えば、 a.phpと、b.php、2つのスクリプトファイルからなるサイトにおいて、 a.php、b.phpどちらにおいても、スクリプトソース冒頭で、 //(1)サーバ側のセッションファイルの有効期限を(少なくとも)24時間に設定 //有効期限が過ぎた後は、ある一定の確率でGCが起動しファイルを削除 ini_set('session.gc_maxlifetime', 86400); //(2)クライアント側のクッキーファイルの有効期限を24時間に設定 session_set_cookie_params(86400,"/"); //(3)セッションIDを生成、付与 session_start(); とし、 さらに、その上で、 IDとパスワードの入力に成功した場合に、 ログインさせ、その状態をセッション値に入れます $_SESSION['login'] = 'login'; --- 以上の経路をたどった場合の「ログイン持続期間」は、 24時間となると私は考えていますが、違いますでしょうか? しかし、実際には、1時間も持ちません。 (ちょくちょくサイトにアクセスしていると、1時間以上持つようなのですが。 ※つまり、期限が更新(延長)されているんでしょうかね。) で、どうして意図した通りに動かないのかを調べようと、 firefoxにて、クッキーの有効期限を確認すると、 (2)の処理がうまくいっているせいか、 こちらの有効期限は意図通りに設定されています。 よって、意図通りに機能しない原因は、 サーバ側のセッションファイルの有効期限が うまく設定されていないからなのでは、と思っています。 つまり、(1)の処理がうまく出来ていないことが予想されます。 はてさて、どこに問題があるのか…。 また、このサイトの例において、 もし仮に私の意図した通りの設計となった場合には、 アクセスの度に、その有効期限を24時間延長するような処理になるのでしょうか? 以上、どなたかどうかアドバイスを宜しくお願い致します。 --- なお、 セッション値に「time()」を格納し、 その時間をもとに、ログイン期限を設定し、 ログイン時からの経過時間と、その期限とを比較して、 ログイン状態を継続(延長更新?)させるか、切断するかを毎回判断させる、 なんていう方法もありそうですが、 その場合にしても、 結局は、サーバ側のセッションファイルの有効期限の持ちが悪ければ、 同様に、うまくいかないはずだと私は考えています。

    • 締切済み
    • PHP
  • Cookieになんで有効期限がいる?

    Cookieについて、今日はいろいろ調べてみました。 でも、どうしても、Cookieに有効期限があるかわかりません。もしかして、OSがこの有効期限をみて期限切れのは削除できるようにしてるのでしょうか? あと、キャッシュとCookieの違いはわかっているつもりなのですが、キャッシュは、Webそのままのデータですよね!?それでもって、Cookieとは、サーバ側にデータを送るためにクライアント側に保存されるデータですよね!? ここで、疑問に思ったのが、キャッシュはどうやってこの効力を発揮しているのでしょうか?例えば、yahooのHPがキャッシュに残ってた場合、どうやって、インターネットに行かずキャッシュにあるから、キャッシュファイルから読みこめよとなっているのでしょうか?

  • Cookieを利用したログインについて

    http://tenderfeel.xsrv.jp/php/628/ に、Cookieを利用したサンプルが掲載されているのですが、 このサンプルでは、セッションIDを発行せずに、セッション管理をすべてCookieで行なっている、のでしょうか? また、処理としては、サーバー側にはデータを何も保持せずに、 アクセスする度にブラウザから、(ハッシュ化したパスワードを含む)Cookie情報を送信して、 その一致を確認している、ということになるのでしょうか? セキュリティ的には、問題とかないのでしょうか? 次に、セッション版についてですが、 セッションIDは、スクリプトのどの部分で発行しているのでしょうか? また、処理としては、セッションIDはブラウザに、 それ以外のセッション変数は、サーバ側のセッション(?)に保存、 ということになるのでしょうか?

    • ベストアンサー
    • PHP
  • php.ini を変更せずにセッションの有効期限を設定する方法

    ブラウザを閉じた後からでもセッションを切ることなく、 再度ページにアクセスした際にセッションデータを扱えるようにしたいと考えています。 先の方の質問で php.ini の session.cookie_lifetime を設定することで解決できる、という方法は発見できましたが、レンタルサーバの場合はおいそれと変更できません。 何かコーディングで対処できる方法はありませんでしょうか。 よろしくお願い申し上げます。

    • ベストアンサー
    • PHP
  • 擬似クライアントプログラムでセッションを認識させたい

    サーブレットでのセッションの扱いは、クライアントにセッションIDをCookieとして保存しておき、次回以降のアクセスではクライアントからそのIDをサーバに通知することにより、セッションを維持するという仕組みですよね。 そこで、以下のようなコードを含むクライアントプログラムを動作させました。 // cookieのハンドリングにCookieManagerを設定 CookieManager cookieManager = new CookieManager(); CookieHandler.setDefault(cookieManager); HttpURLConnection conn = ... // 1度目の通信 conn.disconnect; conn = ... // 2度目の通信 conn.disconnect; この状態でHttpURLConnectionを使用してサーブレットと通信を行うと、CookieHandlerが自動的にCookieのやりとりを行ってくれるため、セッションIDのやりとりについても自動化してくれて、サーバとの通信でセッションが確立できるはずです。(この情報の信頼性がいまいちです) しかし、私が試した限りでは、セッションは保持されませんでした。 擬似クライアントの変わりにブラウザで試してみましたが、きちんとセッションは認識されるので、サーブレット側の問題ではありません。 また、CookieManagerはcookieをメモリ上に保存しますが、擬似クライアントは同一VM上で複数回の接続を試しています(よって揮発している可能性はありません)。 そして、サーブレット側で(セッションではなく)cookieを意図的に食べさせた場合には、きちんとその内容を復元することができます。 セッションやCookieManager等についての私の認識が誤っていることが原因だと思うのですが、おかしなところがあればご指摘お願いします。

  • Webサーバのアクセスログ情報の「jsessionid」について

    Webサーバのアクセスログ情報の「jsessionid」について <質問詳細> OracleWeblogocサーバのアクセスログに『jsessionid=xxxx?~』のURLが出ています。 現在、調査中ですが、このjsessionidはクッキー情報として、新規にWebサーバにアクセス時、Webサーバ側で払い出され、以降はこのIDにてセッション情報を確立するものと認識しています。 上記が正しいことを前提として、以下に質問させてください。 携帯端末によっては、新規にWebサーバにアクセスしてもjsessionid=xxxx?~』のURLが出ません。 何故でしょうか?(携帯(機種)依存もしくは、携帯の設定によるものなのでしょうか?) 要は、jsessionidが付与される条件について理解できていないため、どなたかわかり易いご回答を お待ちしております。 === 以下、補足 === URLが出る携帯端末において、  (1)新規に接続した場合   jsessionidは払い出されていないため、   上記jsessionid=xxxx?のURLは表示される。    (2)Webサーバ側にセッションが残っているときに携帯から再接続した場合    jsessionidは既に払い出されているため、上記jsessionid=xxxx?のURLが出ない。  (3)携帯ブラウザのキャッシュをクリアしたときに携帯から再接続した場合   上記jsessionid=xxxx?のURLは表示される。  (4)Webサーバ側にてセッションタイムアウトしたときに携帯から再接続した場合   上記jsessionid=xxxx?のURLは表示される。    ★しかし…★ ある特定の機種において、上記(1)~(4)を行ったところ、どの場合においてもjsessionid=xxxx?の URLは表示されませんでした。 以上、宜しくお願いいたします。

  • セッションの期限切れ

    友人のPCトラブルなのですが、ある航空会社のホームページから、席の予約を入れようと便を指定して次に進もうとすると、「Session Expired」(セッションの期限切れ)と表示されてしまいます。 使用しているOSはWindows XP Pro、ブラウザーはIE6。ファイアフォールはMacAfeeです。 IEの設定も変えてみました。 インターネットオプションのプライバシータブの中の詳細設定から、自動Cookie処理を上書きするにチェックを入れ、ファーストパーティのCookieとサードパーティのCookieを[受け入れる]を選択しました。 セキュリティのカスタマイズレベルから中と低を試してみました。 詳細設定のタブからSSLが使用可能になっているかもチェックしました。 キャッシュとクッキーも削除、ブラウザーも閉じてから新しいブラウザーを開いてから試しました。 それでも状況は変わりません。 問題のウェブサイトです。 http://www.virginblue.com.au/   私のPCからでは問題はありません。他にどのようなことが考えられるでしょうか? よろしくお願いします。

  • TOMCATの設定方法

    Oracle Thin Driverというのが、Oracle Cliantのインストールを必要とせずに OracleDBにアクセスできるとwebで見かけたので、JSPを使ってOracleDBのデータ を以下の(3)の端末からブラウザで確認しようとしているのですが、JDBCドライバ (ojdbc6.jarでよろしいのでしょうか?)やtomcatの設定はどのようにすれば宜しい のでしょうか?どなたかご教示願えませんでしょうか? (1)DBサーバ:Windows2003Server Oracle10g (2)アプリサーバ:Windows7Pro tomcat jdk1.8、jdk1.8.0_05 (3)クライアント:Windows7Pro(ブラウザよりhttp://(2)のアドレス:8080...で参照したい)

このQ&Aのポイント
  • EPSONプリンターのメインスイッチが点滅し、インクのランプが点灯している場合、印刷ができない原因があります。用紙が吸い込まれず、印刷ができない状況になることもあります。
  • EPSONプリンターのトラブル発生時には、以下の対処法を試してみることが重要です。まずは、メインスイッチの点滅やインクのランプの点灯が原因である場合は、プリンターを再起動してみてください。
  • また、用紙が吸い込まれない場合は、用紙の詰まりや紙の種類などが原因となっている可能性があります。用紙の詰まりを解消するために、プリンターを清掃し、正しい方法で用紙をセットしてみてください。
回答を見る