Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I prevent users from voting more than once in 1 hour?

At the moment I have a script with CAPTCHA, which on submit logs the users IP address to prevent a user from voting more than once per hour.

However, many people are using proxies to get around this vote restriction and I would like to employ additional protection.

I realize there are other questions about this topic, but they always involve people wanting users to only be able to vote once, rather than a timed restriction.

Thank you for any help

EDIT: I do not want to force users to login

like image 472
MarkRobbo Avatar asked Jun 07 '11 15:06

MarkRobbo


1 Answers

There is no 100% secure way of avoiding people to vote more than once an hour, but here are few methods to make it harder for the users to circumvent it:

  • Place cookies on the users computer
  • Log their IP
  • Store content into their localStorage (only for users with HTML5 browsers)
  • If you really want to start digging deeper, you can start putting restrictions based on the users session length, how many pages they navigated prior to voting, i.e. starting to profile the users that try to circumvent the system, and start putting restrictions on those profiled users.
like image 107
Niklas Avatar answered Oct 10 '22 02:10

Niklas