If the "bad" people are smart enough to use proxies to vote against your will or rules, there is a chance that they will also be able to circumvent other protections ...
But here is what you can do:
1) Set up cookie on machine after voting, but users can manually delete cookie
2) Use user accounts for voting confirmed by email, but users can create alternative user accounts.
2bis) A user account can only get a vote after 24 hours, and may not be suitable for your application.
3) Like a stack overflow, it implements a reputation mechanism on user accounts so that they can vote only after they have proved that they are not just bots or alternative personalities
solendil
source share