いつも的確な回答を頂いて助かっています。
またお願いしますm( __ __ )m
ウェブアプリケーション側でクライアントの IP アドレスが取得できると思います。
※ 例えば、PHP なら $_SERVER["REMOTE_ADDR"];
1つ目の質問は、例えばクライアントが、http://www.hoge.co.jp/ に接続した時の IP アドレスがブラウザを閉じるまでの間に変動することはありえるのでしょうか?(可能性として 0% と言えるかどうか)
2つ目の質問は、クライアント PC を再起動したり、ネットワークを再接続したら IP アドレスは変動する可能性はあるんではないかとなんとなく想像できますが、ブラウザを再起動しただけで変動することもあるのでしょうか?(こちらも可能性として 0% と言えるかどうか)
期待する効果としては、私の運営するサイトへのアクセスがあったクライアントの IP アドレスがブラウザを閉じるまでの間、同じIPアドレスかどうかが保証したいのです。
以上です。
よろしくお願いします。
No.5ベストアンサー
- 回答日時:
他の方も書かれてる「インターネットに再接続したときにIPアドレスが変わる」といった事例の他に、
規模の大きい企業などで、ファイアーウォール(プロクシ)を通すために、
見かけ上ネット環境は変わってないのに、ページを見るたびに、サーバから見たIPアドレスが毎回変わる、なんていうところもあったりします。
また、プロキシを通せば、逆に異なるユーザーが同じIPアドレスからアクセスしてくるために、IPアドレスチェックはセッションハイジャック対策にならないという問題があります。
というわけで、IPアドレス+セッションIDでセッション管理するのは、
モバイル環境などでIPアドレスが変わった場合に対応するように、、
・セッションIDベースで、IPアドレスが変わった場合は単に蹴るのではなく、再認証する
ぐらいで、実用上は大多数の人にとっては問題ないですが、
小数ながらもアクセスが出来なくなる人がいるし、
対策として万全ではないことだけは理解しておいた方が良いかと思います。
セッションIDベースで
IPアドレスに依存しないセッション管理としては、手軽な方法としては
・UserAgent をチェックする
というのがあります。これ単体ではセッションハイジャックを完全に止めることはできませんが、
少なくとも普通の人なら、一連のアクセスでUserAgentが変わることはまずありませんので、普通の利用者がアクセスできなくなる可能性はありません。
あとは、認証のタイミングなどでは、セッションIDを再発行することで、ハイジャックしようにもセッションIDが無効になってしまうようにするのがいいでしょう。
(セッションハイジャックによる攻撃者が、被攻撃者にセッションIDを送り込んでそのセッションIDで認証をさせても、認証後にセッションIDが変われば、ハイジャッカーが持ってるセッションIDは無効になってそれ以上の攻撃はできなくなる)
回答ありがとうございます。
UserAgent について色々調べて見ました。
確かに UserAgent を使ってセッションハイジャック対策をしているサイトもあるようですね。
しかし色々調べるうちに
IPアドレスにしても、UserAgent にしても、ある程度の抑制力はあるにしても完全ではないという結論に達しました。
ですから、完全ではないということを頭に置いてセッション管理の設計をもう一度考えてみたいと思います。
No.4
- 回答日時:
>1つ目の質問は、~
あります
たとえば、私はemobileを利用してネット接続していますが、
IPアドレスは6時間ごとに変化します
よって、IPアドレスの変わり目でサイトを閲覧した場合に起こりえますし、
IPが変わるプロバイダは他にもいっぱいあるので発生確率もかなり高いといえます
>2つ目の質問は、~
ない。0%
No.2
- 回答日時:
1つ目に関してはありうるでしょう
自分もよく電車の中とかでモバイル接続しますが、電波状態が悪くて回線が切れたときに再接続すれば普通にIPアドレスが変わっていますので
有線で接続している場合でも回線が切れない保証は何もないので0%と言い切るのは無理でしょう
ブラウザの再起動でIPアドレスが変わることはないでしょうが、ブラウザでproxyの設定をしたら(変えたら)サーバから見たIPアドレスは変わる可能性がありますが、そういうのは考慮しなくていいんですか?
ということで、
> 私の運営するサイトへのアクセスがあったクライアントの IP アドレスがブラウザを閉じるまでの間、同じIPアドレスかどうかが保証したいのです
完全に可能性が0%というのは無理でしょう
回答ありがとうございます。
なるほど・・確かにおっしゃる通り・・
ブラウザの開く閉じるの話と IP が変動するかどうかの話はそれぞれが独立した事象ですね。
No.1
- 回答日時:
変動することは、もちろんありえます。ただし、現在のWindowsでの実装では「DHCPのクライアント更新は最初に今まで使っていたIPアドレスでリクエストを出す」ことから、同じIPアドレスを割り当てられることが多いです。ほとんど無いケースでも、考慮しなくてはならないでしょう。ブラウザの動作は関係なく、IPアドレスの変動はありえます。まあ、手動でももちろん変更できますけどね。
セッション管理をクッキーなりなんなりでしない事には、同じクライアントだという保証はまったくありえません。また、同じIPアドレスだからといって同じクライアントとは限りませんのでご注意を。
例えば、NAPTを使っているケースだとかセッションハイジャックだとか。IPアドレスだけで同じクライアントかどうかを判読するのは意味がありません。
http://www.atmarkit.co.jp/fsecurity/rensai/webho …
回答ありがとうございます。
参考サイト拝見させていただきました。
実は既に私のサイトはセッション管理によるユーザー認証をしています。
今回 IP アドレスの話が持ち上がったのはセッションハイジャックの話からなのです。
私のサイトのメンバーが悪意ある人にセッションIDを盗まれた時、現状無防備なため、セッションID が正規のものか、盗まれたものかを判断できないかと考えています。
今回私がやろうとしていたことは、ユーザーが認証を受け、セッションID を発行したら、その時にクライアントのIPアドレスも一緒に保存しておいて、セッションごとにIPも一致するかどうか判定して、もし一致しない場合は再ログインさせようかと考えていました。浅はかですね;;
http://oshiete1.goo.ne.jp/qa5354478.html (こちらも私の質問です。)
何か良い手は無いものかでしょうか・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- VPN 接続のたびにIPが変わるVPNサービスが知りたい 2 2022/06/27 02:34
- ツイキャス ツイキャスでアカウントロックされたとき、IPアドレスが自動取得で変更されても、PC端末が特定される? 1 2022/10/15 15:49
- SoftBank(ソフトバンク) スマホ ipアドレス 4 2022/08/24 01:26
- その他(インターネット接続・インフラ) ブラウザにIPアドレス入力した時 1 2022/06/16 19:08
- YouTube youtube動画再生について… 1 2022/04/08 04:24
- Windows 10 インストールしたてのVirtualBoxの仮想マシンにDHCPで割り振られるIPアドレスにつきまして 1 2023/05/03 14:46
- 固定IP MACアドレスはLAN内で相手を特定するアドレスですか? PCから監視カメラを閲覧するときに、セグメ 3 2022/07/23 09:04
- その他(インターネット接続・インフラ) アプリ利用者を特定し、裁判に 2 2022/06/09 21:43
- システム システムにインターネットからアクセスする際、URLではなく、IPアドレスでブラウザからアクセスするこ 2 2022/07/28 09:52
- その他(コンピューター・テクノロジー) DHCPサーバーについて、、、。 職場のネットワーク環境で困っています。サーバーはWindows s 3 2023/01/04 10:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.net(ASP.net)でアクセスカ...
-
セッションに格納する方法
-
リッチクライアントのセッション
-
setAttribute getAttribute 配...
-
グローバルIPアドレスの変更タ...
-
プログラミングで例えばゲーム...
-
腕時計の時報をならないように...
-
C言語で今まで表示していた画面...
-
画面を隠す・消す方法を教えて...
-
jspからjarを参照したいのですが
-
VBAでTIFF画像を読み込むには?
-
javaでクイズ(一問一答)作成...
-
VB.NET DataReaderが開かれている
-
URLはそのままで、リンクをクリ...
-
三菱GOTの画面切り替えについて
-
画面遷移を行わずに同一ページ...
-
このadidasの腕時計の時刻の設...
-
ボタンでパラメータを渡すには
-
3層クライアントサーバとMVCの関係
-
フォーム上で押されたボタンに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javascriptでセッションを取得
-
グローバルIPアドレスの変更タ...
-
javascriptでセッションの削除...
-
エラーページ遷移後に入力値を残す
-
JSPでsession変数が勝手に書き...
-
ASP Session変数名の取得
-
sessionスコープとapplication...
-
画面遷移でセッション切れにな...
-
ASP.NETのGlobal.asaxについて
-
セッションタイムアウト時にエ...
-
Tomcatでの同一セッション同時...
-
javascriptでのログアウトボタン
-
jsessionidの有効期限を延長す...
-
セッションタイムアウトの設定...
-
setAttribute getAttribute 配...
-
セッションIDの桁数
-
JSPでブラウザ終了時にPostgreS...
-
JSP + ラジオボタン
-
HttpSessionListenerクラスに関...
-
複数Webサーバーでのセッション...
おすすめ情報