开发者

How to remember an anonymous vote

What is the best way to implement a "memory" or persistence for an anonymous vote? The other day I was browsing some site (unfortunately I forgot the URL), and I could quickly "thumbs up" or "thumbs down" an item. So I voted on several items. I then closed all my browser instanc开发者_如何学Goes, deleted all the browser history and files. I went back to the site to vote on some of the same items but it "knew" that I had already voted. So I am wondering what's the best way to accomplish this

I have read about evercookies, but somehow they don't seem like a nice way to treat your users. I don’t want to go that way. Or are evercookies the only way to accomplish this?

If evercookies were not the mechanism behind this then the only way I can think of is to remember the client's IP + User Agent + something else. But what is "something else"?

Any thoughts?

Regards, Archil


Sites may use a combination of the following to try and identify flooding or abuse of a form such as an online poll. No method is completely infallible; in fact, most are trivial to fool.

Identifying the same person:

  • Setting a cookie (such as a session cookie)
  • Comparing the IP address
  • A hueristic approach having a cookie, and comparing part of the IP address (a /24 subnet) and/or user-agent as a backup when there's no cookie.

Preventing other types of abuse:

  • Flood control: don't allow more than a certain number of votes per minute from a certain IP subset, or from everyone.
  • Spam detection: try to detect bots by signature (eg malformed user-agent or accepts header, etc)

Making the user jump through hoops:

  • CAPTCHA/robot detection
  • Making the user confirm their vote by email
  • Making the user register, provide a unique email address, confirm the email address

For every measure there's an equal and opposite counter-measure. For example, an abuser might ignore cookies, vary his user-agent or use an anonymiser service that varies his IP address for every request. He might sign up using multiple accounts with throw-away email addresses, and there are even ways to try and defeat CAPTCHA (eg. replay the CAPTCHA for users on another site).

Note that to someone who is determined to disrupt, an evercookie doesn't do much more for you than a cookie. They wouldn't affect a bot, for example.

I personally do not like to use the barriers that make users jump through hoops. Hopefully I've demonstrated that even if you require registration you are not guarding against abusers all that much more than you would with a good flood control algorithm, since it's trivial to get multiple throwaway email addresses.


I have got your question and there are many methods to identify the user clicks or visit.

Cookies

There are various cookies you can store in users machine like

  • SuperCookies
  • Flash Cookies
  • Silverlight Cookies
  • Zombie Cookies
  • First party cookies
  • Third party cookies

Zombie cookies are similar to Flash Cookies. If you don't want to use all these, you can simply use SuperCookies. It's usage is simpler and you can find it in github. But the problem is most of the users will disable the cookies. So you can even use the below methods which gives the hash key which we will be generated depending on broswer, fonts etc.

  • webGL fingerprinting
  • canvas fingerprinting
  • audio fingerprinting

Panopticlick says that 1 of 84 will have similar canvas hash and 1 of 983 will have similar webGL.

You can have a look at the site user tracker. This type of websites also adopts some of the methods to identify the users like

  • getting client's IP
  • location
  • browser fingerprinting

we can get the client's IP by using the webRTC.

We also have websites which gives free api to get location like ipgeolocation. You can match with webGL, canvas hash keys with your location.

And finally browser fingerprinting which helps most of the companies and websites to identify the users.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜