识别匿名用户

时间:2009-08-29 19:57:33

标签: authentication identity anonymous

如果我在我的网站上进行了投票,并且我不想要求注册投票,但我只想要每次访问一次,我该怎么做?

假设来自IP 123.34.243.57的访问者访问该网站并投票。那么从123.34.243。*中不允许任何人投票吗?这是一个好策略吗?

又是什么?

5 个答案:

答案 0 :(得分:5)

这是互联网上所有投票网站的一项基本挑战,而您只是打破了问题的表面。

你说的方式,你“只想让每次访问一次[投票]”表示你想让他们每次打开浏览器并进入网站时投票一次。我认为这不是你所追求的。

我怀疑你想要的是一个特定的个人只能投票一次(每次调查,也许)。

问题是,一旦你正确地解决了问题,问题就会变得更加清晰。您不是要尝试识别Internet节点(IP地址),访问(会话cookie),浏览器实例(持久性cookie)或计算机(难以识别)。

您可以使用Cookie技术,它们适合典型用户使用。颠覆这种技术就像这样简单 - 在浏览器中清除您的Cookie, - 在浏览器中禁用cookie, - 打开另一个浏览器, - 走到另一台电脑, - 使用anonimizer, - ......无穷无尽的其他方式。

您可以通过电子邮件地址进行验证,但您表示您不想进行注册,因此我认为这也不能解决您的问题。

如果您确实需要为投票系统确定唯一用户,您需要拥有一些权威,他们愿意为任何给定用户的身份担保,或者只允许从受信任的平台访问该软件。

第一种技术需要注册(通常需要注册成本高昂且耗时),以验证个人的实际法定名称和位置。然后,使用公钥基础结构(又称数字证书),您可以根据他提供的凭据识别个人。

需要可信平台的第二种技术依赖于遵循某些预定行为的硬件。例如,您可以创建一个通过XBox 360或iPhone工作的投票站点。您将创建一个安装到其中一个设备的应用程序。根据平台的保护方式,您可以使用XBox 360上的硬件地址或Live ID或iPhone上的硬件地址或电话号码等唯一性特征,以确保用户是同一个用户以前去过。由于您可以控制应用程序,而用户特别没有,因为受信任平台的性质,您可以合理地保证大多数用户无法破坏应用程序的意图。

我怀疑这是一种啰嗦的方式,说你可以做到这一点,但这是一个非常容易解决的问题。

考虑政治选举以及将这些公平和匿名用于资源和能源的程度,这仍然是一个非常具有挑战性的问题。

答案 1 :(得分:2)

使用公共IP可能是一个坏主意。如果您使用此方法,来自同一公司LAN的唯一访问者将看起来像一个用户。

也许是饼干?我相信这是大多数网站使用的。

结合某种监控,自动或手动(例如日志文件分析)。怀疑指示脚本的流量模式。

答案 2 :(得分:1)

不,您无法使用IP地址或IP范围来识别唯一身份用户。有几个原因:

  1. 停止整个范围将阻止尚未投票的用户。
  2. 动态获取IP地址的用户以后会获得不同的IP地址。
  3. 本地网络中的人(如大公司)共享相同的公共IP地址。
  4. 您可以使用Cookie来标记已投票的人。这样做会好得多,因为它没有盲目打击,但它当然不完全准确,因为人们可以清除cookie并浏览多个浏览器。

    要对用户进行完全准确的识别,以确保您无法多次投票,您需要为用户登录。嗯,除了人们当然可以创建多个帐户这一事实......

答案 3 :(得分:0)

阻止ip范围不是一个好策略,你可以有2个选项来识别已经投票的用户,他们的IP和cookie。他们投票后,设置一个cookie,不允许他们再次投票。

他们可以清除cookie并更改IP,但是对于匿名投票是可以接受的,如果你想要一个更好的策略,让他们注册投票

答案 4 :(得分:0)

你应该只阻止那个特定的IP,而不是整个IP范围!

如果您没有注册,这是最佳解决方案,但不适用于用户!

您可以阻止某人多次投票。但你也可以阻止其他一些用户投票,这是因为NAT。

Network Address Translation(或NAT)允许多个用户使用单个IP访问互联网。

但这没关系,因为NAT没有被大量使用,很少有用户会被禁止投票。

然而,cookie并不是一个好的解决方案。因为用户可以轻松删除浏览器cookie并再次投票。更糟糕的是,他/她可以写一个脚本自动投票多次!