2010-11-03 43 views
20

Cách tốt nhất để tạo 'dấu vân tay' của duy nhất người dùng trong PHP là gì?Cách tạo vân tay người dùng duy nhất trong PHP

Ví dụ:

  1. tôi có thể sử dụng địa chỉ IP của người dùng là 'dấu vân tay', tuy nhiên, có có thể có nhiều người dùng khác trên cùng một IP
  2. tôi có thể sử dụng IP của người dùng + tác nhân người dùng là 'vân tay', tuy nhiên, một người dùng đơn lẻ chỉ có thể hoán đổi từ safari sang firefox và một lần nữa được xem là duy nhất

Lý tưởng nhất, dấu vân tay để gắn nhãn 'máy' thay vì trình duyệt hoặc 'ip' nhưng tôi không thể nghĩ cách này có thể đạt được.

Mở để biết các ý tưởng/đề xuất về cách bạn xác định duy nhất người dùng của mình và những lợi thế/bất lợi của phương pháp của bạn.

+2

câu hỏi cũ, nhưng điều này: 'md5 (implode ('', $ _ SERVER)); ' – Shea

+1

@Shea Nhận xét hữu ích nhưng dấu vân tay không thay đổi (ẩn dụ nói) và sẽ có biến thể trong $ _SERVER không liên quan đến người dùng http://us1.php.net/reserved.variables.server –

+1

@Shea Tôi sẽ không sử dụng mẹo bạn đã đề xuất vì là dấu vân tay sẽ thay đổi trên mỗi trang web được truy cập. Nhưng có lẽ nó có thể được cải thiện. – Calimero

Trả lời

12

Trang web này bao gồm khá nhiều thông tin bạn có thể sử dụng để phân biệt cá nhân thông qua trình duyệt.

https://panopticlick.eff.org/

JavaScript, Java và Flash trợ giúp rất nhiều.

+0

wow, điều tuyệt vời - nhưng: điều này sẽ không xác định người dùng nữa, nếu anh ta thay đổi trình duyệt, cài đặt hoặc gỡ cài đặt bất kỳ addons nào và vân vân ... nếu tôi hiểu đúng. – oezi

+0

@oezi Đúng, bạn phải hiểu rõ về những phần dữ liệu nào bạn sử dụng và cách thực hiện. – JAL

+0

Cảm ơn Alex - điều đó thực sự hữu ích. Trong khi tôi chắc chắn nó sẽ không được hoàn hảo, ý tưởng cuối cùng của tôi để ngón tay in 'máy' là để làm một băm [độ phân giải màn hình] [danh sách sắp xếp theo thứ tự bảng chữ cái] [IP]. –

10

session-management - mỗi khách hàng được cung cấp id, được lưu trữ trong cookie (nếu được bật) hoặc được cung cấp dưới dạng biến get trên mọi liên kết và biểu mẫu. (Hoặc bạn có thể tự đặt cookie). nhưng: đây chỉ là "dấu vân tay" trình duyệt - nếu người dùng thay đổi trình duyệt của mình, xóa cookie hoặc bất kỳ thứ gì, bạn không thể xác định được nữa.

xác định mọi khách hàng bằng ip thường là ý tưởng tồi và không hoạt động. khách hàng sử dụng cùng một bộ định tuyến sẽ có cùng một ip - khách hàng được kết nối thông qua một proxy-pool có thể có một ip khác với mỗi lần tải trang.

nếu bạn cần một giải pháp mà khách hàng không thể thao tác một cách dễ dàng, hãy thử kết hợp những điều sau đây, sử dụng tất cả những gì được trình duyệt khách hàng hỗ trợ và so sánh chúng trên mỗi lần tải trang:

  • "bình thường" HTTP Cookies
  • Shared Objects địa phương (flash cookie)
  • Lưu trữ cookie trong các giá trị RGB của, PNG lực lưu trữ tự động tạo ra sử dụng thẻ HTML5 Canvas để đọc pixel (cookies) trở ra
  • Lưu trữ cookie và đọc Lịch sử web
  • Lưu trữ cookie trong ETags HTTP
  • Internet Explorer userData lưu trữ
  • HTML5 Lưu trữ Phiên
  • HTML5 địa phương lưu trữ lưu trữ
  • HTML5 toàn cầu
  • HTML5 Cơ sở dữ liệu lưu trữ thông qua SQLite

có một giải pháp được gọi là evercookie thực hiện tất cả các điều này

+1

Bạn đã liên kết với bản dịch tiếng Đức của hướng dẫn sử dụng PHP ... Đây là trang tương tự bằng tiếng Anh: http://www.php.net/manual/en/book.session.php - Ngoài ra, bằng cách sử dụng Evercookie, hoặc bất kỳ cách nào khác để lưu trữ dữ liệu trên máy khách với mục đích rõ ràng là làm cho nó khó loại bỏ có thể là bất hợp pháp trong hầu hết các quốc gia. –

3

Đạt 100% độ tin cậy không được bảo đảm, nhưng kết hợp một số phương pháp phổ biến có thể cung cấp cho bạn kết quả có ý nghĩa

  • Người dùng thường không chuyển đổi trình duyệt. Quá phức tạp trong thuật toán của bạn chỉ để đạt được sự hoàn hảo về kỹ thuật là không đáng để nỗ lực.
  • Bạn chắc chắn thuộc 100 trang web hàng đầu nếu bạn có thể mong đợi nhiều người dùng từ cùng một IP. Đừng coi nó là cá nhân, nhưng bạn không nổi tiếng.

Sử dụng tuyến đường đơn giản nhất có thể hoạt động và điều chỉnh theo thời gian nếu cần.

+9

tôi hoàn toàn không đồng ý với điểm thứ hai của bạn - tùy thuộc vào loại trang web mà anh ấy có, bạn sẽ nhận được nhiều người dùng với cùng một ip rất nhanh. cho phép trang web của anh ấy là tên người xem: tất cả các schoolkids nói với nhau, bạn bè chơi cùng nhau và trong lớp tin học, nơi họ có internet, tất cả đều chơi trò chơi này từ mạng trường học (có nghĩa là: cùng ip, nhưng nhà phát triển phải tìm ra nếu nó là cùng một máy tính để biết điều này không phải là một gian lận đa accounter) – oezi

+0

@oezi Như một browsergame sẽ nhận được cùng với ID phiên chỉ tốt. – pestaa

+1

thực sự, tôi chỉ muốn đưa ra một ví dụ tại sao bạn không thể dựa vào địa chỉ IP ngay cả trên các trang web nhỏ. – oezi

3

Có điều gì khác cần lưu ý, địa chỉ IP công khai của người dùng là thứ gì đó cũng có thể thay đổi trong mọi lần tải trang.
Có nhiều tổ chức chuyển đổi IP công khai trong các bộ định tuyến để cân bằng lưu lượng truy cập.

0

Tôi có ba máy tính khác nhau, nhiều thiết bị cầm tay khác nhau và nhiều thiết bị đã cài đặt các trình duyệt khác nhau. Tôi sử dụng tất cả các thay thế cho nhau ở nhà đưa họ với tôi những nơi khác vì vậy, về cơ bản, trên địa chỉ IP khác nhau. Những gì tôi đang cố gắng chỉ ra là việc lấy dấu vân tay trình duyệt hoặc máy móc cho vấn đề đó sẽ không bao giờ trở nên dễ dàng nếu mục tiêu của bạn là chặn một người.

Tôi khuyên bạn nên thực hiện một cách tiếp cận khác. Đánh giá dựa trên thông tin không xác định mà bạn có sẵn cho thấy danh tính người dùng bị cấm của bạn (cùng IP hoặc cùng một tác nhân người dùng nếu đó là một thông thường hoặc một số phương pháp vân tay trình duyệt javascript như phông chữ sẵn có, plugin sẵn có, không chuẩn kích thước cửa sổ, v.v.) và yêu cầu của những khách truy cập nghi ngờ đó là hình thức xác minh danh tính cao hơn - chẳng hạn như oauth với Facebook, Google+ hoặc Twitter. Sau đó, bạn có thể xem để xem liệu tài khoản truyền thông xã hội đó là chính hãng hay được tạo ra chỉ để phá vỡ. Ngoài ra còn có API xác minh số điện thoại trong trường hợp cơ sở người dùng của bạn không phải là hiểu biết về truyền thông xã hội và tùy thuộc vào mức độ hữu ích của bạn đối với người dùng mà bạn không phá vỡ lệnh cấm.

Các vấn đề liên quan