서블릿에서 클라이언트를 식별 할 때 쿠키 대신 IP 주소를 사용할 수없는 이유는 무엇입니까?


26

IP 주소보다 쿠키를 사용하는 데 추가적인 이점이 있다는 것을 알고 있습니다. 그러나 내 질문은 클라이언트가 사이트를 다시 방문 할 때 클라이언트를 식별 할 때 클라이언트의 IP 주소 만 기억할 수없는 이유는 무엇입니까? 컨테이너가 IP 주소를 사용하여 클라이언트를 기억할 수 있습니까?


47
IP 주소는 고유하지 않습니다. 두 사람이 같은 라우터 뒤에 있으면 어떻게됩니까?
Doval

7
한 사람이 Tor를 사용하면 어떻게됩니까?

12
또한 사람들의 IP 주소는 자주 변경 될 수 있습니다 (홈 광대역).
GrandmasterB

6
프록시는 회사의 모든 사람과 같이 얼마나 많은 사람이 뒤에 있는지에 관계없이 하나의 IP 주소로 표시됩니다.
Jeff-Inventor ChromeOS

4
@ Jeff-InventorChromeOS 및 그 반대의 경우도 마찬가지입니다. 일부 ISP에는 프록시 서버 클러스터가있어 단일 사용자의 요청이 여러 IP 주소에서 온 것처럼 보일 수 있습니다. 마지막으로 확인했을 때 AOL이이를 수행했습니다.
Jules

답변:


84

클라이언트는 쿠키 및 IP 주소로 식별됩니다. 그러나 IP 주소는 독점적으로 사용할 수 없습니다.

  • 두 클라이언트가 동일한 NAT 방화벽 또는 프록시 뒤에있는 경우 어떻게합니까? 서버와 동일한 외부 IP 주소를 갖습니다.
  • 사용자가 동일한 컴퓨터에서 두 개의 서로 다른 브라우저를 열고 두 개의 별도 세션을 원하면 어떻게됩니까 (테스트 용)?
  • 사용자는 세션 중에 변경 될 수있는 동적 IP 주소를 가질 수 있습니다.
  • 공격자는 IP 주소 만 사용하는 경우 IP 주소를 스푸핑하고 세션을 인수 할 수 있습니다.

즉, IP 주소가 모든 경우에 클라이언트를 고유하게 식별 하지는 않습니다 .


19
클라이언트를 식별하기 위해 IP 주소를 사용하는 것은 큰 버그입니다. 전화로 사이트에 액세스하는 길을 걷고있는 동안 내 IP 주소가 1 분에 여러 번 변경 될 수 있습니다.
R ..

5
@R .. 미안하지만, 이것은 명백히 잘못되었습니다. 무선 셀은 IP 주소와 아무 관련이 없으며, IP 계층은 OSI 모델에서 물리적 계층을 사용하는 셀 통신 이상입니다. 여전히 IP 주소를 사용하여 클라이언트를 식별하는 것은 여전히 ​​잘못되지만 이런 이유로 아닙니다.
Reinstate Monica-dirkk

11
@dirkk WiFi를 사용 중이고 퍼블릭 IP를 사용하여 서로 다른 독립적 인 네트워크에 연결하는 경우 확실히 발생할 수 있습니다. 모바일 네트워크 셀을 변경할 때 다른 IP 주소를 제공하도록 결정할 수도 있습니다. 랩톱을 다른 네트워크에 연결 (layer1)하면 IP (layer3)가 변경 될 수 있습니다.
Bob

8
나는 어떻게 무선 통신 사업자에 대한 전문가는 할당 된 IP 주소입니다,하지만 난 무선 랜에 말할 수 있습니다 : 나는 바쁜 길을 걷고 있다면 그리고 내가 내 무선 장치가 어떤 연결하도록 구성했고이 할 수있는 모든 와이파이 네트워크, 나는 완전히 기대 Wi-Fi IP 주소가 자주 변경됩니다.

7
@dirkk : 당신이 모르는 것에 대해 틀렸다고 비난하지 마십시오. 밥이 의심 한 것처럼, 나는 와이파 이에 대해 이야기하고 있었다 . 8 개 이상의 카페 및 기타 비즈니스 액세스 포인트를 이용할 수 있으며 거리를 따라 도시에서 제공하는 무선 랜 액세스 포인트 (품질이 더 낮음)에 액세스 할 수 있으며 걷는 동안 전화가 정기적으로 이동합니다.
R ..

18

때로는 IP 주소를 사용할 있습니다.

LAN을 사용 중이거나 IP를 단일 클라이언트에 정적으로 배포 한 사용자를 독점적으로 다루는 경우 해당 주소를 사용하는 것이 좋습니다 (때로는 선호되고 필요함).

그러나 일반적으로 할 수 없습니다.

공개 사이트를 실행하는 경우 서버에 도달 한 대부분 의 IP 주소는 정적이거나 전용이 아닙니다. 대부분의 고객은 여러 클라이언트를 대표합니다. 데스크톱, 랩톱 및 휴대폰은 모두 홈 네트워크에있을 때 동일한 IP 주소를 통해 전송됩니다. IP는 세션 중간에도 변경 될 수 있습니다.


2
Lan에서도조차 할 수 없습니다. Firefox 및 Internet Explorer에서 사이트를 열면 두 개의 다른 세션이 필요합니다.
Pieter B

@PieterB 다른 세션의 요점을 이해하지 못했습니다. 설명해 주시겠습니까?
자바

1
@java Firefox로 은행 웹 사이트에 로그인 할 때 크롬으로 로그인 할 것으로 예상되지 않습니다. 두 브라우저 모두 자체 세션과 독립적으로 작동합니다.
Pieter B

1
@PieterB 그것은 여전히 ​​요구 사항에 달려 있습니다. 요구 사항에 모든 "세션"이 "로컬 장치의 모든 웹 클라이언트"에 걸쳐 있어야한다면 IP 주소가 원하는 것일 수 있습니다.
svidgen

10

추가해야 할 세 가지 이유 :

  1. 다중 사용자 워크 스테이션 및 터미널 서버가 존재합니다. 많은 사용자가 별도의 세션에서 완전히 독립적 인 브라우저 프로세스를 실행할 수 있습니다.
  2. IP 주소는 영구적이지 않습니다. DHCP 임대가 만료되면 다시 할당 될 수 있습니다.
  3. 응용 프로그램은 로밍을 지원해야합니다. 예를 들어, 휴대 전화 사용자가 WiFi 범위를 벗어나 3G 연결로 전환 될 수 있습니다. IP 주소는 변경되지만 웹 응용 프로그램이 계속 작동하게하는 것이 좋습니다.

2

IP 주소를 식별자로 사용하는 것은 일반적으로 권장되지 않습니다. IP 주소는 의도 된 것이 아니기 때문에 기능적으로 a에서 b로 라우팅하기위한 일반 주소이며 b 이전 또는 이후에 어떤 것도 알려주지 않습니다.

예를 들어, 동일한 IP 주소는 다수의 natted 장치에서 공유 될 수 있으며, 가장 일반적인 경우는

a) 동적으로 고객에게 주소 풀을 할당하는 공급자, 더 많은 고객에게 서비스를 제공 할 수있는 동일한 수량의 공개 주소를 구입하는 경우 (일반 사용자가 아닌 동시 사용자에게는 충분한 주소 만 필요)

b) 단일 주소에서 웹에 액세스하여 내부적으로 패킷을 수백 또는 수천으로 리디렉션하는 개인 네트워크


1

두 대의 컴퓨터가 NAT 뒤에 있고 동일한 IP 주소를 가질 수 있다는 점 외에도 클라이언트 개념이 맞아야합니다.

클라이언트는 통신중인 컴퓨터가 아니라 해당 컴퓨터에서 실행되는 브라우저입니다.

브라우저는 컴퓨터의 IP 주소에 대해 신경 쓰지 않으며 운영 체제는 중요합니다. 그리고 이것이 IP 주소에 의존 할 수없는 이유입니다. 브라우저는 쿠키를 관리하며 브라우저 제어하에 있습니다. 이것이 세션에 쿠키를 사용하는 이유입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.