• ベストアンサー

セッションについて

セッションはたとえブラウザを落としても維持されると思うのですが、どのような情報から同じものからのアクセスであるとサーバは見分けているのですか? ipアドレス?MACアドレス?ホスト名?ブラウザ? しかしこれだけだとOSに別アカウントで入ったときには、同じセッションを使われるのではないかと思いました。しかしそんなことはないだろうと思うので、どなたかどのような情報からサーバが個人を識別しているか教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

サーバから発行された『セッションID』で、ユーザを識別します。 通常は、ブラウザが、クッキーとして管理しますので、ブラウザを落とすと、セッションが無効になります。 別なブラウザからアクセスすると、新しいセッションIDが割り振られます。 クッキーが使用できない環境、例えば携帯電話などでは、URLにセッションIDを埋め込む方法が取られています。

参考URL:
http://php.xenophy.com/session/index.html
jayjay_3
質問者

お礼

どうやらセッションとクッキーの知識がよく整理されていなかったみたいです。 すっきりしました。 ありがとうございました!

その他の回答 (2)

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.3

http://okwave.jp/qa/q6762720.html の私の過去の回答ANo.1 Webブラウザを終了させてしまえば一般的にそのセションは切れる,というANo.1・ANo.2に私も同意します。

jayjay_3
質問者

お礼

回答感謝致します。

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.2

こんちくは。 >>セッションはたとえブラウザを落としても維持されると思うのですが Webブラウザを介してってことだとしたら、セッション管理はブラウザ単位で行なうはずなので、ブラウザを落とす=セッション(セッションID)が切れる。 ので、維持はされない。と思ってましたが。。。 (まぁ、Webブラウザを介さない。。。場合も、同じようなもんかとは思いますけどね。アプリケーションツールとかでWeb通信できる奴。とか?うん。上手く言えないけど。 >>どのような情報から同じものからのアクセスであるとサーバは見分けているのですか? >>どのような情報からサーバが個人を識別しているか システムによって違うと思うのですが、どういう場合のことを言ってるんですかね??? 一番楽に説明できるのが、ログインを行ってもらって。。。の管理をするのが一番イメージつきやすいと思うんですが。 ログインID、パス叩いてログインしてもらえばいいわけですし。ログインID単位での管理。ですね。 社内システムとかだと、IP固定で振ってる関係もあって、IP管理で前回接続情報ひっぱりだしてきて、自動ログインがなんちゃら~みたいな管理してるシステムも 見たことはありますが、結局はログインID引っ張りだしてきてますけどね。。。

jayjay_3
質問者

お礼

詳しくありがとうございます。勉強させてもらいました。ありがとうございます。

関連するQ&A

  • セッションIDについて

    セッション管理について、まったく経験がないので、アドバイスお願いいたします! 現在のWEBシステムですが、なぜかIPアドレスのみでしかアクセスできない作りになっています。 それでは困るので、ドメイン名でアクセスできるようにと改修をお願いしたところ、 今度はドメイン名のみでしかアクセスできないがいいか?・・・と質問が届きました。 普通、WEBシステムを使うほうから考えますと、 IPでアクセスしようが、ドメインでアクセスしようが どちらでも動くのが当たり前のように思うのですが。 プログラムの作りでそうなってるのかもしれませんが これって変ですよね? それともよくあることなのでしょうか? 理由を確認したところ、 サーバ名を用いたURLでの構築を行っていないため、ページ遷移を行うとログインエラーが発生する箇所があるとの事。 システムは管理者の機能と一般の機能があり、当然別々の動きをしなければならないのですが 推測するに、IPアクセスだったら管理者、ドメイン名だったら一般というような判断をしているのでは?と思われます。 IPアクセスのみというのを知らずに、ドメイン名でアクセスして試験をしていたら 途中でURLがIPに変わり(cgiでphpが動いて)、エラーになったのです。 session情報は同ドメイン上で有効であるため、 IPでアクセスした場合とドメイン名でアクセスした場合ではセッション情報を引き継げないため、 ログイン情報無しと判断されるため・・・ が原因ということなのですが 実際、SESSIONIDにはどんな内容が入ってくるのでしょうか? 管理者と一般のふたつの機能をセッションIDを使って、切り分けるのはできないことなのでしょうか? セッションIDは使ったこともないので問題外かもしれませんが 自分だったら、今は管理者、今は一般・・・というような情報をhiddenに持つとか、 リンクできる情報をテーブルに持つとかするかな... なんて思いながら、セッションID ってこんな時、どうやって使うのかな? と疑問だらけです。 セッションIDを使って、ふたつの機能を使い分けることはできないのでしょうか? または、ふたつの機能を切り分けできる他の方法などありましたらアドバイスいただけないでしょうか?

    • ベストアンサー
    • CGI
  • プライベートアドレスとMACアドレスの漏洩

    はじめて質問します。 プライベートIPアドレスとMACアドレス、およびOS情報が漏洩した場合、個人情報の特定(IPアドレス、おきにいり情報などPCに関わるもの)やセキュリティの危険性はありますでしょうか? 家庭内LANを使用しており、プライベートIPアドレスなら大丈夫と思いましたが、ホスト名とMACアドレス、OS情報とが揃って漏洩してしまったら不安になり投稿させていただきました。 よろしくお願いいたします。

  • Apacheでアクセスログの送信元

    Apacheにおいてアクセスログを確認してみたのですが、送信元がIPアドレスの場合とホスト名の場合がありました。 その変化の間に特に設定はいじっておりません。 数秒間のアクセス間にもそれが変化するときがあります。 連続してIPアドレスだったりホスト名だったり、一個だけホスト名であとはIPアドレスが続いたりと様々です。 自分で同じブラウザを使って同じように何度もアクセスしています。 サーバはレンタルサーバを使っています。 ちなみにHostnameLookupsという設定は、探してみましたが確認方法がわかりませんでした。 この変化にどういう法則があるのでしょうか。

  • サーブレット sessionスコープに関して

    こんばんは。 『sessionスコープはPCごと』に関しての質問なのですが、 (http://www.atmarkit.co.jp/fjava/rensai3/tomcat09/tomcat09_02.htmlから抜粋) ログイン後、ユーザ名をsessionに保持し、どの画面に遷移してもユーザ名が表示されるシステムで、 同一PCの2つのブラウザから別ユーザでログインしても、きちんとユーザ名が識別できその後も識別したまま操作できます。 なぜ、このような現象が起こるのでしょうか? 私は、『1PC = 1Session』なら後からログインしたユーザ名でsessionデータが上書きされると思っていました。 req.getSession().setAttribute("userName", form.getUser()); このソースは、sessionIDで識別し取得したsessionスコープにform.getUser()をuserNameという名前でバインドする。という感じですよね? 『1ブラウザ = 1session』なのでしょうか? ※1ブラウザとは子画面も含みます。以下↓ yahooなどでリンクを押して別画面に派生する場合は、別ブラウザが立ち上がってもログイン名が出るので、同一sessionだなと思います。 間違っていますか?

    • ベストアンサー
    • Java
  • Apache→Tomcatでセッション維持されない

    Apache->Tomcatでセッションが維持されない Apacheのproxy_ajp.confの設定を ProxyPass /xxx/ ajp://localhost:8009/ とした時にhttp://サーバー名/xxx/(webapps内フォルダ名)/ でアクセスした場合アクセスする度に新しいセッションIDになってしまします。 Apacheのproxy_ajp.confの設定を ProxyPass / ajp://localhost:8009/ とした時にhttp://サーバー名/(webapps内フォルダ名)/ でアクセスした場合はセッションIDは保持されます。 http://サーバー名/でアクセスした時はTomcatのwebappsとは別の場所に配置したWebサイトを表示させている為、 【ProxyPass / ajp://localhost:8009/】とは設定したくはないんですが・・・ どうしたらよいでしょうか・・・? 今の状況 ■http://サーバー名/xxx/(webapps内フォルダ名)/  でアクセスするとセッションが保持されない。 ■Apache単体でphpを使った時、セッションは保持される。 ■8080ポートを使ってTomcatへ直接アクセスした場合、セッションは保持される。 環境 OS:CentOS 5 Apache:2.2 Tomcat:6.0

    • ベストアンサー
    • Java
  • ホスト名に"_"を含む場合のSession変数維持

    Windows 2000 Server環境を使用しています。 サーバーのホスト名に"_"を使用しており、ASPにてCookieが使用できないことを知りました。 単純にホスト名を変更すればよいのですが、他のアプリでも使用しており、変更することが難しいのが現状です。 Session変数がダメならとDimで試してみましたが、ページが偏移すると値は破棄されてしまいました。 ホスト名を変更せずにSession変数(またはDim)の値を維持させる方法はありませんでしょうか。 なお、Application変数は通るのですが、ユーザーごとに値が格納できないためNGとなりました。 宜しくお願いいたします。

  • セッションハイジャックの対策方法について

    http://okwave.jp/qa5356018.html 上記の質問の便乗質問です 質問1 上記の質問内#5で、セッションハイジャック対策として、 セッションIDとUserAegntを組みで管理しハイジャックリスクを軽減する また、この方法を使用しているサイトも存在するとの記述がありますが、 セッションIDを盗聴出来る(つまりHTTPヘッダを読み取る)のであれば、必然的にUserAgentも盗聴されるので、この方法でハイジャックリスクを低減することは出来ないと思うのですが、いかがでしょうか? そもそも、私のDoCoMoの携帯はUserAgentを送らないし・・・ 質問2 同じく#5で 「IPアドレスチェックはセッションハイジャック対策にならない」 とありますが、たしかに携帯等からアクセスするとIPが著しく変化する可能性がありますが、無限に変化するわけではありません しょせん、携帯会社が保有するIPの範囲内です たとえばDoCoMoであれば、IPのホストアドレスの数はたかただか4,5種類です よって、「IPアドレスのホストアドレスをチェックすることで送信元を限定」し、ハイジャックチェックをすることは可能だと思うのですがいかがでしょう? もちろん、DoCoMoネットワーク内部のハイジャッカーには対応できませんが、簡単に偽装可能なUserAgent(たとえば、FirefoxはUserAgentを変更する項目がある)でチェックするよりはるかに有効だと思います 携帯以外で企業内部からProxy経由で接続してきた場合、これもIPアドレスが変化する可能性があるようですが、企業も無限にIPを保有しているわけではなく、特定のホストアドレス内の範囲のはずです よって、同一セッションIDの接続でIPが変化した場合、ホストアドレス上位24bitまたは16bitが変化したかで不正接続かどうかを判断できると思います もちろん、同一企業内にハイジャッカーが居たら上記の方法では判別できませんが、企業内のセキュリティ不備までホームページ提供者(セッションIDを提供する側)が考慮してあげる必要は無いと思っています また、IPアドレスの変化量に応じてセッションIDのライフタイムを減らし、リスクを低減するような機能もついでに追加しても有効ではないでしょうか? つまり、IPが変化するネットワークからのアクセスは、リスク軽減のためセッションIDのライフタイムをデフォルト30分を15分に減らすなど。 また、IPアドレスに変化がない場合は、当然上記のチェックはする必要はなく、クライアントを信用します このような方法でセッションハイジャック対応(もちろん100%ではないが、かなり有効だと思う)出来そうですが、 いかがでしょうか? また、このような方法でチェックしているサイトはありますでしょうか?

  • クッキーとセッション

    クッキーとセッションの違いは何ですか? クッキーは「WebサーバーがWebブラウザに渡すメモのようなもの」でセッションは「クライアントに関連する情報(データ)をWebサーバーに預けておくことが出来るもの」で合っていますか?

  • 別ブラウザ間でセッションの値が共有されてしまう問題

    別ブラウザ間でセッションの値が共有されてしまう問題 あるサーバー(hostgator)で、セッションを使用するプログラム(PHP)を作っているのですが、あるブラウザで入力した値が、全ての異なるブラウザで同じ値を参照してしまっている 現象が出てしまい、困っています。 異なるブラウザというのは、別PC/別IPアドレスの別ブラウザでも、セッションを共有してしまっています。 同プログラムを、別会社のサーバーに入れた所、 きちんとブラウザごとに別の値が保存されているので、このサーバーだけの問題かと思い、 php.iniなどを調べてみたのですがそれらしい設定を見つけることができませんでした。 この現象を解決する方法をご存知のかた、おられないでしょうか? プログラム自体は、この現象を再現するために作ったもので、 以下の様なものです。 別ブラウザ間でセッションの値が共有されてしまう問題あるサーバー(hostgator)で、セッションを使用するプログラム(PHP)を作っているのですが、あるブラウザで入力した値が、全ての異なるブラウザで同じ値を参照してしまっている 現象が出てしまい、困っています。 異なるブラウザというのは、別PC/別IPアドレスの別ブラウザでも、セッションを共有してしまっています。 同プログラムを、別会社のサーバーに入れた所、 きちんとブラウザごとに別の値が保存されているので、このサーバーだけの問題かと思い、 php.iniなどを調べてみたのですがそれらしい設定を見つけることができませんでした。 この現象を解決する方法をご存知のかた、おられないでしょうか? プログラム自体は、この現象を再現するために作ったもので、 以下の様なものです。 session_start(); $_SESSION['val'] = $_SESSION['val'] + 1; echo $_SESSION['val'];

    • 締切済み
    • PHP
  • セッションを奪った場合にスクリプトを実行する方法

    ADサーバおよびメンバーサーバがWindows Server 2008 R2の環境で、 ADサーバ側のグループポリシーで設定するログオンスクリプトによって ログオン情報(ログオン時間、クライアントのホスト名等)をテキストファイルに 記録するスクリプトを実行したいと考えております。 ※メンバーサーバには複数の端末、アカウントでログオンします。 現在スクリプトの検証をしており、サーバにアカウントAでログオンしている状態で 別端末から同じアカウントAで接続した場合、あとから接続した方がセッションを 奪うような形になりますが、その際はログオンスクリプトが実行されないため、 上記のログオン情報が記録できないことがわかっております。 セッションを奪ってログオンした場合に、特定のスクリプトを実行させるような 良い方法はありますでしょうか?