2010-08-03 24 views
6

Trên trang web của tôi, chúng tôi chạy một hệ thống cuộc thi và người dùng bỏ phiếu cho nội dung của người dùng khác. Gần đây, chúng tôi đã bắt gặp ai đó tạo nhiều tài khoản để bỏ phiếu nhiều lần (số id liên tiếp và phiếu bầu trong vòng vài phút). Chúng tôi muốn ngăn điều đó xảy ra lần nữa. Đánh giá cách Times xử lý cuộc thăm dò ý kiến ​​"Người có ảnh hưởng nhất thế kỷ" của họ, ngay cả những kẻ lớn cũng hiểu sai.Làm thế nào để ngăn chặn số lượng gian lận nhiều nhất cho các cuộc thăm dò?

Hiện tại, chúng tôi ghi nhật ký ID người dùng, ngày bỏ phiếu và địa chỉ IPv4 (thông qua $ _SERVER ['REMOTE_ADDR']).

Tôi có thể làm gì để ngăn chặn hoặc gây khó khăn cho người khác để bỏ phiếu gian lận?

Trả lời

6

Yêu cầu danh tiếng của người dùng. Nếu bạn liên kết quyền bầu cử với người dùng phải có danh tiếng nhất định (tức là bằng cách tham gia cộng đồng của bạn trong một thời gian nhất định và cung cấp nội dung có ý nghĩa) thì ngày càng khó khăn cho ai đó tự động hóa quá trình tạo nhiều danh tính.

Cuối cùng, đó là sự cân bằng giữa xác thực đủ, dễ truy cập và giá trị của kết quả (cho bạn và người dùng) - và cách bạn trình bày kết quả.

+1

Tôi đã bình chọn bạn vì đây là một hệ thống tốt, nhưng khả năng bỏ phiếu cho ai đó cũng có thể khiến cộng đồng bot trở thành những "cử tri đứng đầu" và do đó cho phép họ được bình chọn tăng lên đại diện riêng. – Organiccat

+0

Cảm ơn. Tôi đã bình chọn cho bạn bình luận của bạn để chứng minh quan điểm của bạn. ;) Nhưng một phần quan trọng cũng là tìm các giá trị khách quan hơn để thể hiện uy tín hơn là ý kiến ​​của người dùng khác. Ví dụ có thể là số liệu về chất lượng của nội dung bạn cung cấp. – relet

+0

Đại diện trên trang web của tôi được tạo khác nhau. Bots sẽ là có thể, nhưng khó khăn. Danh tiếng được tạo bằng cách tương tác với hệ thống (tức là thêm bạn bè, chơi trò chơi, v.v.). Điều này có thể hoạt động khá tốt. – Malfist

0

Thật không may là rất khó để ngăn chặn bỏ phiếu gian lận, khi có ý chí có một cách. Tuy nhiên nó là tất cả về làm cho nó như là bất tiện như có thể để lừa hệ thống.

Tài khoản của bạn có yêu cầu địa chỉ email duy nhất có xác minh trước khi bạn có thể sử dụng tài khoản không?

Tần suất người dùng có thể bỏ phiếu? Nếu nó chỉ là một lần hoặc một lần một ngày bạn có thể gửi một email để xác minh phiếu bầu, tuy nhiên điều này tuy nhiên có thể trở thành một nỗi đau cho người dùng hợp pháp.

Không chắc về quy mô trang web, tuy nhiên khi bạn bắt đầu nói về trang web cực kỳ lớn như bình chọn của Time thì thật khó để phán xét xem phiếu bầu liên tiếp có giả hay không bằng cách xem địa chỉ IP. Các trường cao đẳng và văn phòng thường có thể có hàng trăm người trên cùng một địa chỉ IP. Rất khó để biết đó có phải là một người đứng sau phiếu bầu hay không, nếu một người đi xung quanh tất cả bạn bè của họ trên sàn ký túc xá yêu cầu họ bỏ phiếu (có thể giải thích đăng ký/phiếu bầu mới từ cùng một địa chỉ IP cùng một lúc).

Thực sự không có câu trả lời cho câu hỏi này, chỉ cần theo dõi nhật ký và xóa phiếu bầu không hợp lệ.

0

Như bạn đã làm, theo dõi địa chỉ IP, cùng với thời gian bỏ phiếu và không cho phép nhiều phiếu bầu từ cùng một IP trong cùng một khung thời gian. Điều này chỉ ảnh hưởng đến một vài sinh viên đại học.

Một cách dễ dàng hơn để thực hiện việc này với bỏ phiếu an toàn là buộc đăng ký và xác nhận email. Một số trang web bot/spam vẫn có thể giải quyết vấn đề này bằng cách có miền riêng của họ, tuy nhiên bạn có thể chặn đăng ký tên miền và bỏ phiếu từ trang web đó. Đây là "khó chịu nhất" tuy nhiên hầu hết thời gian tiêu thụ do đó dẫn đến ít nhất có khả năng, kết hợp với địa chỉ IP, dẫn đến gian lận nặng.

Điều cần nhớ là bạn sẽ không ngăn chặn tất cả các gian lận vào hệ thống của mình, tuy nhiên bạn có thể giảm thiểu chúng.

1

Sử dụng địa chỉ IPv4, với chữ ký trình duyệt ($ _SERVER ['HTTP_USER_AGENT']) băm.

Nếu phiếu bầu đến từ người dùng khác nhau, nhưng trong cùng một địa chỉ IP, với cùng một trình duyệt, trong một khung thời gian gần, nó có thể là một gian lận.

Nếu thời gian quá gần, dẫn đến quá trình tự động, hình ảnh xác thực sẽ giải quyết nó (nhưng không ai thích hình ảnh xác thực trong cuộc thăm dò ý kiến).

+0

Tôi đồng ý với mọi người ở đây. Không có cách nào để thực sự ngăn chặn gian lận, nhưng có những cách để giảm thiểu. Các đề xuất khác khi thực thi tài khoản người dùng hợp lệ, dựa trên địa chỉ email hợp lệ (với bước xác nhận). Tiếp tục theo dõi, sử dụng IPv4 và băm trình duyệt trong một khung thời gian. Giới hạn số phiếu bầu của người dùng chỉ với một phiếu bầu cho mỗi cuộc thăm dò ... Mọi thứ có thêm một chút phức tạp sẽ giúp ngăn chặn gian lận. – Dave

+0

Tôi cũng đã nghĩ về điều này, nhưng hầu hết các tổ chức lớn trên cùng một IP cũng thường có cùng phiên bản trình duyệt từ trải nghiệm của tôi. Nếu họ có các trình duyệt khác nhau trên các máy thì có khả năng họ sẽ có thể cài đặt các trình duyệt khác để kiểm tra tác nhân người dùng khi họ chỉ có thể mở trình duyệt khác trên máy đó. – Alex

+0

Không chỉ các tổ chức lớn, nhưng trường cao đẳng, hoặc nhà lưới công cộng. Đây là một phần của thử thách. Ví dụ, bên trong IBM, gần như không thể tải xuống một cái gì đó từ rapidshare miễn phí vì lý do này rất. Đề xuất đăng nhập Tác nhân người dùng có nhiều khả năng ngăn chặn tự động hóa (ví dụ, sử dụng JMeter với nguồn dữ liệu tài khoản và vòng lặp 100x, vì JMeter không gửi bất kỳ tiêu đề nào theo mặc định). Để hiểu rõ hơn về điều này, tôi đề nghị các bài viết của Chris Shiflett về bảo mật PHP. – Dave

0

Tôi sẽ sử dụng kết hợp điều chỉnh phiếu bầu địa chỉ IP và cookie. Có thể xóa cookie nhưng điều đó sẽ ngăn chặn loại người độc hại cũng là một kẻ ngốc.

Điều chỉnh địa chỉ IP sẽ kiểm tra xem một người nào đó từ địa chỉ IP đã bỏ phiếu gần đây (nói 10 phút, bất cứ điều gì bạn cho là công bằng tùy thuộc vào nhân khẩu học hoặc số người bỏ phiếu từ tổ chức lớn trên cùng địa chỉ IP) và ngừng bỏ phiếu được tính.

Kết hợp 2 tài khoản đó với việc sử dụng User ID của bạn đã và nó cũng giống như bạn có thể làm thực tế.

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