Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have seen on some sites which say ,for-example, multiple votes/views from same computer will be neglected/penalized etc. For-example liking a facebook page, or youtube video from same computer(different accounts) will not increase its worth(according to my knowledge).

How do these sites identify bogus votes? I just need a direction.

share|improve this question

3 Answers 3

up vote 4 down vote accepted

Without requiring user accounts (I'm assuming that your use case precludes them), there's no foolproof method to identify end users. But some common methods include:

Cookies

Set a cookie on the client machine to identify the user.

  • Pros: Definitely unique per session
  • Cons: Easy to remove or prevent (even for people with limited technical knowledge), only apply to one browser, easy for a script to bypass

IP address

Use the user's IP address to identify the user.

  • Pros: Changes infrequently, works across browsers, requires technical knowledge to spoof or use a proxy server
  • Cons: Not necessarily unique: one IP address can easily apply to entire homes/buildings/offices behind a network, and for some ISPs end user IP addresses might be reassigned

Browser fingerprinting

Use all browser data passed to the server (not just user agent, but also OS, screen resolution, and a number of other things) to generate a unique browser fingerprint.

  • Pros: High probability of being unique, opaque to the end user (changing IP addresses or clearing cookies won't bypass it)
  • Cons: Probably too unique -- any change in browser condition (or browser) will change the fingerprint (though you can choose only a subset of supplied browser information to balance fingerprint volatility and uniqueness), can be bypassed by scripts

You can, of course, also use multiple methods. Which method you use really depends on your specific use case. For many cases, just a simple cookie will do. If you want some defense against scripts or other methods of bypassing, add an IP address rate limit. You can also attempt to gather as much information as possible and use some sort of heuristic algorithm to try to find people that are bypassing the system for uniqueness that you have in place.

But again, there's no foolproof way to do this.

share|improve this answer

At a simplistic level, probably cookies on the machine, if they're more sophisticated then they may use IP filtering.

share|improve this answer
    
You might want to look at browser fingerprinting –  MichaelT Mar 25 '13 at 14:42
    
Impressive - it's the fonts that do it! –  Michael Mar 25 '13 at 15:14
    
IP filtering would actually be less sophisticated than basing it on cookies. –  Octopus Mar 27 '13 at 20:35

Simplest way to do it would be to filter based on IP address. That means that even legitimate votes from separate users behind a firewall will be discounted. That may seem unfair, but the only other way to do it is with the browsers 'user-agent' identifier or a set of 'accept' headers (for example). But users such as myself who run various browsers from a single machine would easily circumvent mechanisms like that. The good web developers are well aware of that and will likely err on the side of being slightly unfair to some legitimate voters than to allow scammers who log in to multiple accounts from different browsers to vote from.

It really depends on the nature of the site taking the poll, but gathering as much metrics from users as possible and analysing the statistics will help to identify the legit from the fraudulent. Usually this sort of research has been done before hand and an algorithm is selected accordingly.

If I had to do it on a site right now with no metrics, I would filter solely on IP addx.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.