서블릿에서 클라이언트를 식별 할 때 쿠키 대신 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.