サーブレットでクライアントを識別する際に、Cookieの代わりにIPアドレスを使用できないのはなぜですか?


26

IPアドレスを介してCookieを使用することでいくつかの追加の利点があることはわかっていますが、私の質問は、クライアントがサイトに再度アクセスしたときにクライアントを識別する際にクライアントのIPアドレスを記憶できないのはなぜですか?コンテナがIPアドレスを使用してクライアントを記憶することは可能ですか?


47
IPアドレスは一意ではありません。2人が同じルーターの後ろにいるとどうなりますか?
ドーバル

7
1人がTorを使用している場合はどうなりますか?

12
また、人々のIPアドレスは頻繁に変更される可能性があります(ホームブロードバンド)。
GrandmasterB

6
プロキシは、たとえば会社の全員など、背後にいる人数に関係なく、1つのIPアドレスとして表示されます。
Jeff-Inventor ChromeOS

4
@ Jeff-InventorChromeOS逆もまた同様です。一部のISPにはプロキシサーバーのクラスターがあり、単一ユーザーの要求が複数のIPアドレスから来ているように見える場合があります。たとえば、前回チェックしたときに、AOLがこれを行いました。
ジュール14

回答:


84

クライアントは、CookieとIPアドレスによって識別されます。ただし、IPアドレスを排他的に使用することはできません。

  • 2つのクライアントが同じNATファイアウォールまたはプロキシの背後にある場合はどうなりますか?サーバーへの外部IPアドレスは同じです。
  • ユーザーが同じマシンで2つの異なるブラウザを開いており、2つの個別のセッションが必要な場合はどうでしょう(テスト用ですか?)
  • ユーザーは、セッション中に変更される可能性のある動的IPアドレスを持っている場合があります。
  • 攻撃者は、IPアドレスのみに依存している場合、IPアドレスをスプーフィングしてセッションを引き継ぐことができます。

これは、IPアドレスがすべての場合にクライアントを一意に識別するわけではないことを意味します。


19
クライアントを識別するためにIPアドレスを使用することは、大きなバグです。私のIPアドレスは、おそらく私の電話からサイトにアクセスしながら通りを歩いている間に1分間に数回変更されます。
R ..

5
@R ..すみませんが、これは明らかに間違っています。無線セルはIPアドレスとは関係ありません。IP層はOSIモデルのセル通信の上にあります(物理層を使用)。それでも、IPアドレスを使用してクライアントを識別することは依然として間違っていますが、この理由のためではありません。
モニカの復活-dirkk 14

11
@dirkk彼がWiFiを使用していて、パブリックIPを使用して別の独立したネットワークに接続している場合、それは確かに起こり得ます。モバイルネットワークでは、セルを変更するときに異なるIPアドレスを提供することできます。ラップトップを別のネットワークに(layer1)接続すると、IP(layer3)が変更される可能性があります。
ボブ14

8
私は、IPアドレスの割り当て方法を無線通信事業者には何の専門家でありませんが、私は無線LANに話すことができます:私は忙しい通りを歩いていた場合、私は私のワイヤレスデバイスは、それは可能性のある、すべてのWiFiネットワークに接続するように構成していた、私は完全に期待しますWi-Fi IPアドレスは頻繁に変更されます。

7
@dirkk:知らないことについて間違っていると非難しないでください。ボブが疑ったように、私無線LANについて話していました。8つ以上のカフェやその他のビジネスアクセスポイントに加えて、通りに沿って(低品質の)市が提供するWi-Fiアクセスポイントがあり、歩いている間、スマートフォンが定期的にそれらの間を飛び回っています。
R ..

18

IPアドレス使用できる場合あります。

LANを使用している場合、またはIPを単一のクライアントに静的に配布しているユーザーのみを扱う場合は、そのアドレスを使用することで問題ありません。

しかし、通常はできません。

パブリックサイトを実行している場合、サーバーにヒットするIPアドレスのほとんどは静的または専用ではありません。それらのほとんどは複数のクライアントを表します。デスクトップ、ラップトップ、および携帯電話はすべて、ホームネットワークにいるときに同じIPアドレスで送信されます。そして、そのIPは変更される可能性があります-セッション中もです。


2
LANでもできません。FirefoxとInternet Explorerでサイトを開く場合、2つの異なるセッションがあることを完全に期待しています。
ピーターB

@PieterB別のセッションのポイントがわかりませんでした。説明してください。
ジャワ

1
Firefoxを使用して銀行のWebサイトにログインするときに@javaを使用すると、chromeでログインすることは期待できません。両方のブラウザーは、独自のセッションで独立して動作します。
ピーターB

1
@PieterBまだ要件に依存しています。すべての「セッション」が「ローカルデバイス上のすべてのWebクライアント」に及ぶことが要件に記載されている場合、IPアドレスがおそらく必要です。
svidgen

10

追加する3つの理由:

  1. マルチユーザーワークステーションとターミナルサーバーが存在します。多くのユーザーは、完全に独立したブラウザープロセスを別々のセッションで実行できます。
  2. IPアドレスは永続的ではありません。DHCPリースの期限が切れると、再割り当てできます。
  3. アプリケーションはローミングをサポートする必要があります。たとえば、携帯電話のユーザーがWiFiの範囲から外れ、3G接続に引き継がれる場合があります。IPアドレスは変更されますが、Webアプリケーションが機能し続けると便利です。

2

識別子としてIPアドレスを使用することは、IPアドレスの目的ではないため、一般的に推奨されません。機能的には、aからbへのルーティング用のプレーンアドレスであり、bの前後に何も通知されません。

たとえば、同じIPアドレスが多数のナット付きデバイスで共有される場合がありますが、最も一般的なケースは

a)アドレスプールを顧客に動的に割り当てるプロバイダー。これは、より多くの顧客にサービスを提供できる同じ量のパブリックアドレスを購入することとして非常に一般的です(合計ユーザーではなく、同時ユーザーに十分なアドレスが必要です)

b)単一のアドレスからWebにアクセスするプライベートネットワーク。マシンの場合、内部的にパケットを数百または数千にリダイレクトします。


1

それとは別に、2台のコンピューターがNATの背後にあり、同じIPアドレスを持つことができるので、クライアントの概念を正しくする必要があります。

クライアントは、通信しているコンピューターではなく、そのコンピューターで実行されているブラウザーです。

お使いのブラウザは、お使いのコンピューターがどのIPアドレスを持っているかについてはあまり気にしません。オペレーティングシステムはそうです。そして、それがあなたがIPアドレスに頼れない理由です。ブラウザはクッキーを気にし、それらはブラウザの制御下にあります。そのため、セッションにCookieを使用します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.