2012-06-15 23 views
5

Tôi mới làm quen với Django nhưng đang làm việc trên hướng dẫn trên trang web Django để tạo cuộc thăm dò ý kiến.Khách Django chỉ bỏ phiếu một lần bình chọn

Cách tốt nhất để làm cho nó để khách (không đăng ký/đăng nhập) chỉ có thể bỏ phiếu một lần trong cuộc thăm dò ý kiến?

  • IP (Không muốn IP vì những người chia sẻ mạng chỉ có thể bỏ phiếu một lần).
  • Cookie (Người dùng có thể xóa cookie nhưng có vẻ như cách tiếp cận tốt nhất).
  • Phiên (Nếu người dùng đóng trình duyệt, phiên sẽ thay đổi).

Tôi đoán rằng Cookie sẽ là phương pháp tốt nhất nhưng có cách nào tốt hơn cho Django không?

Trả lời

7

Có một giải pháp độc lập trên khung máy chủ bạn sử dụng:

Evercookie mang đến cho bạn cookie hầu irrevokable. Sử dụng chúng, nếu bạn muốn mức độ bền vững của dữ liệu đó.

Evercookie là một giải pháp để lưu trữ dữ liệu trong các tập tin cookie và những nơi khác nhau (chẳng hạn như bộ nhớ sử dụng bởi Flash "cookie", HTML5 của LocalStorage vv). Nếu bất kỳ địa điểm nào trong số này bị xóa, lần truy cập tiếp theo trên trang web sẽ điền lại dữ liệu đó. Điều duy nhất bạn cần là dữ liệu được lưu trữ ở bất kỳ nơi nào trong số 13 địa điểm được Evercookie sử dụng và lượt truy cập tiếp theo sẽ điền lại dữ liệu đó vào 12 địa điểm khác.

Thật khó để loại bỏ các cookie như vậy, vì vậy hãy xem xét liệu người dùng của bạn có thực sự đồng ý theo dõi theo cách đó hay không. Một số người trong số họ chắc chắn sẽ không đồng ý.

1

Nếu điều quan trọng là mọi người chỉ có thể bỏ phiếu một lần, hãy cân nhắc việc tạo một hệ thống đăng ký/đăng nhập cơ bản. Khách luôn có thể sử dụng nhiều máy tính để xiên bỏ phiếu bầu trong khi đăng ký tài khoản ít nhất cho phép bạn theo dõi địa chỉ email nào đang được sử dụng để bỏ phiếu. Cũng cần nỗ lực hơn một chút để xiên bỏ phiếu bầu theo cách đó. Nếu nó quan trọng nhưng không quan trọng về cuộc sống tiết kiệm thì tôi sẽ sử dụng phương pháp tiếp cận cookie cho khách vô danh.

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