Tại sao chúng ta không thể sử dụng địa chỉ IP thay vì cookie trong việc xác định ứng dụng khách trong servlets?


26

Tôi biết chúng tôi có một số lợi thế khác trong việc sử dụng cookie qua địa chỉ IP, nhưng câu hỏi của tôi là Tại sao container không thể nhớ địa chỉ IP của khách hàng trong việc xác định khách hàng khi anh ta truy cập lại trang web của mình? Liệu container có thể nhớ máy khách với sự trợ giúp của địa chỉ IP không?


47
Địa chỉ IP không phải là duy nhất. Điều gì xảy ra khi hai người ở đằng sau cùng một bộ định tuyến?
Doval

7
Điều gì xảy ra khi một người đang sử dụng Tor?

12
Và địa chỉ IP của mọi người có thể thay đổi thường xuyên (băng thông rộng tại nhà).
GrandmasterB

6
Proxy hiển thị dưới dạng 1 địa chỉ IP, bất kể có bao nhiêu người đứng sau họ, ví dụ như mọi người trong một công ty.
Jeff-Inventor ChromeOS

4
@ Jeff-InventorChromOS Và ngược lại, một số ISP có cụm máy chủ proxy sao cho các yêu cầu của một người dùng có thể xuất hiện từ nhiều địa chỉ IP. Lần trước tôi đã kiểm tra, AOL đã làm điều này.
Jules

Câu trả lời:


84

Một khách hàng được xác định bởi một cookie cũng như địa chỉ IP. Tuy nhiên, địa chỉ IP không thể được sử dụng riêng:

  • Điều gì xảy ra nếu hai máy khách được đặt phía sau cùng một tường lửa hoặc proxy NAT? Họ sẽ có cùng địa chỉ IP bên ngoài đến máy chủ.
  • Điều gì xảy ra nếu người dùng có hai trình duyệt khác nhau mở trên cùng một máy và muốn hai phiên riêng biệt (có thể để thử nghiệm?)
  • Một người dùng có thể có một địa chỉ IP động có thể thay đổi có thể hiểu được trong một phiên.
  • Kẻ tấn công có thể giả mạo địa chỉ IP và chiếm lấy một phiên nếu nó chỉ dựa vào địa chỉ IP.

Điều này có nghĩa là một địa chỉ IP không xác định duy nhất một khách hàng trong mọi trường hợp.


19
Sử dụng một địa chỉ IP để xác định một khách hàng là một lỗi rất lớn. Địa chỉ IP của tôi có thể thay đổi vài lần một phút trong khi đi bộ xuống phố truy cập một trang web từ điện thoại của tôi.
R ..

5
@R .. Tôi xin lỗi, nhưng điều này là sai trái rõ ràng. Tế bào vô tuyến của bạn không liên quan gì đến địa chỉ IP của bạn, lớp IP nằm trên giao tiếp tế bào (sử dụng lớp vật lý) trong mô hình OSI. Tuy nhiên, sử dụng địa chỉ IP để xác định khách hàng vẫn sai, nhưng không phải vì lý do này.
Phục hồi Monica - dirkk

11
@dirkk Nếu anh ấy truy cập WiFi và kết nối với các mạng khác nhau, độc lập với mạng IP công cộng, điều đó chắc chắn có thể xảy ra. Một mạng di động cũng có thể quyết định cung cấp các địa chỉ IP khác nhau khi bạn thay đổi các ô. Nếu tôi cắm (layer1) máy tính xách tay của tôi vào một mạng khác, điều đó chắc chắn có thể thay đổi IP của tôi (layer3).
Bob

8
Tôi không phải là chuyên gia về cách telcos không dây gán địa chỉ IP, nhưng tôi có thể nói chuyện với wifi: nếu tôi đang đi bộ trên một con phố đông đúc tôi đã cấu hình thiết bị không dây của mình để kết nối với bất kỳ và tất cả các mạng wifi có thể, tôi hoàn toàn mong đợi địa chỉ IP wifi của nó để thay đổi thường xuyên.

7
@dirkk: Xin đừng buộc tội tôi đã sai về điều gì đó mà bạn không biết. Như Bob nghi ngờ, tôi đã nói về wifi. Tôi có quyền truy cập vào hơn 8 quán cà phê và các điểm truy cập kinh doanh khác, cộng với các điểm truy cập wifi do thành phố cung cấp (chất lượng thấp hơn) và điện thoại của tôi thường xuyên nhảy giữa chúng khi đi bộ.
R ..

18

Đôi khi bạn có thể sử dụng địa chỉ IP.

Nếu bạn đang sử dụng mạng LAN hoặc giao dịch độc quyền với người dùng có IP được phân phối tĩnh cho các khách hàng đơn lẻ, sử dụng địa chỉ đó là hoàn toàn tốt - đôi khi tốt hơn và cần thiết.

Nhưng, thông thường bạn không thể.

Nếu bạn đang chạy một trang web công cộng, hầu hết các địa chỉ IP tấn công máy chủ của bạn không phải là tĩnh hoặc dành riêng. Hầu hết trong số họ đại diện cho nhiều khách hàng: Tất cả máy tính để bàn, máy tính xách tay và điện thoại di động của bạn đều xuất hiện trên cùng một địa chỉ IP khi bạn ở trên mạng gia đình. Và IP đó có thể thay đổi - ngay cả giữa phiên.


2
Ngay cả trên một Lan bạn cũng không thể. Nếu tôi mở một trang web trong Firefox và Internet Explorer, tôi hoàn toàn mong đợi có hai phiên khác nhau.
Pieter B

@PieterB Tôi không hiểu quan điểm của bạn về các phiên khác nhau. Bạn có thể giải thích về nó không?
JAVA

1
@java khi tôi đăng nhập vào trang web ngân hàng của mình bằng Firefox, tôi không mong đợi được đăng nhập bằng chrome. Cả hai trình duyệt hoạt động độc lập với các phiên riêng của chúng.
Pieter B

1
@PieterB Nó vẫn chỉ phụ thuộc vào yêu cầu. Nếu các yêu cầu nêu rõ rằng mọi "phiên" sẽ mở rộng "tất cả các máy khách web trên thiết bị cục bộ", địa chỉ IP có thể là thứ bạn muốn.
Svidgen

10

Thêm ba lý do để thêm:

  1. Máy trạm đa người dùng và máy chủ đầu cuối tồn tại. Nhiều người dùng có thể đang chạy các quy trình trình duyệt hoàn toàn độc lập trong các phiên riêng biệt.
  2. Địa chỉ IP không liên tục. Nó có thể được chỉ định lại khi hết hạn thuê DHCP.
  3. Ứng dụng nên hỗ trợ chuyển vùng. Ví dụ: người dùng trên điện thoại có thể thoát khỏi phạm vi WiFi và được chuyển sang kết nối 3G. Địa chỉ IP sẽ thay đổi, nhưng thật tuyệt khi để ứng dụng web tiếp tục hoạt động.

2

Việc sử dụng địa chỉ IP làm định danh thường không được khuyến khích, vì đó không phải là địa chỉ IP có nghĩa là gì - về mặt chức năng, đây là một địa chỉ đơn giản để định tuyến từ a đến b, và nó không cho biết gì trước a hoặc sau b.

Ví dụ: cùng một địa chỉ IP có thể được chia sẻ bởi một số thiết bị được ẩn, hầu hết các trường hợp phổ biến là

a) nhà cung cấp tự động gán một nhóm địa chỉ cho khách hàng của mình, điều này khá phổ biến là mua cùng một lượng địa chỉ công cộng mà bạn có thể phục vụ nhiều khách hàng hơn (bạn chỉ cần đủ địa chỉ cho người dùng đồng thời chứ không phải tổng số người dùng)

b) một mạng riêng truy cập web từ một địa chỉ duy nhất, chuyển hướng nội bộ các gói đến hàng trăm hoặc hàng nghìn nếu máy móc


1

Ngoài ra, hai máy tính có thể đứng sau NAT và có cùng địa chỉ IP, khái niệm về máy khách của bạn cần phải đúng.

Máy khách rất nhiều KHÔNG phải máy tính bạn đang liên lạc, mà là trình duyệt chạy trên máy tính đó.

Trình duyệt của bạn không quan tâm nhiều đến địa chỉ IP mà máy tính của bạn có, hệ điều hành của bạn có. Và đó là lý do tại sao bạn không thể dựa vào địa chỉ IP. Trình duyệt quan tâm đến cookie và chúng nằm dưới sự kiểm soát của trình duyệt. Đó là lý do tại sao bạn sử dụng cookie cho các phiên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.