Hope this helps you answer your question. Check out this site: https://panopticlick.eff.org/ . Basically, he tries to identify you based on various system settings, installed fonts, browser options, time zone, etc. I just sent it to my office, and so far we are all unique.
Now this method is not completely safe, because you can fake all this information by simply changing the data that is sent to the server for each request, but you need to KNOW that your site uses this technique in order to attack (security through obscurity).
I think I would be inclined to take a multi-level approach to the problem. Since none of the methods is completely safe, all you can do is collect them.
- Do not let people vote unless they have cookies.
- Implement CAPTCHA for users who are not logged in.
- Profile users based on the hashes of their system settings (font hash, browser capabilities, time zone, etc.)
- You have a login system so users can vote.
Now, when someone votes, you store your user ID (if they are logged in), their system hashes and their cookies against their vote. This will prevent voting, logging out and subsequent voting anonymously - because their system hashes and cookies (if they did not bother to clear it) are already tied to the voting.
Something else you can do is make a tripwire to determine if the vote at a particular post is clogged in any particular direction. If it is clogged (say, 20 votes per minute for 10 minutes, and most of the votes were in the same direction), try profiling upvotes by looking at the IP address, system hashes, etc. Based on an arbitrary percentage of possible malicious attacks, you can block the vote on this post for 15 minutes.
None of these methods are completely safe, and for brevity, I have missed out on a few things you can do to easily expand on this idea. But I believe that a multi-level approach is key. Undoubtedly, there is sometime a really specific user who does not mind that whenever you have typed really good logs, you can comment on this attack and respond to it.
Hope this helps
Greetings Ian
Iain fraser
source share