2009-12-13 108 views
6

我想知道提供投票系统(或说评级)时不需要用户登录就涉及到哪些技术障碍。我知道机器人有问题,投票一堆 - 但如果您保留用户的IP地址?代理成为一个问题吗?提供公开投票系统有什么意义(不需要登录)?

我想建立一个仍然可靠的公共投票系统..现在可能吗?

编辑 正确性,即人为验证和每用户一票的风险是适度的。一个全面的登录会要求太多的用户给他的角色(选民)

此外,如果这是“不可能”完成,你怎么能在事后检测投票欺诈?维基百科的模型可以在这里工作吗?

谢谢, 马特·穆勒

+2

这一切都取决于某人操纵系统的动机。如果对手有兴趣打破它是100美元,那么很容易做到“可靠”,如果对手打破它的兴趣是10万美元,那么就不那么容易了。即使CAPCHA系统已经被坚定的团体打破了(他们没有更好的时间):http://musicmachinery.com/2009/04/27/moot-wins-time-inc-loses/ – 2009-12-13 19:40:10

+0

不错的链接,帕斯卡尔! – 2009-12-13 19:46:45

+0

哇..哈哈。可怜的时间..我正在编辑我的帖子以添加其他信息。 – Matt 2009-12-13 20:00:52

回答

8

正如你所说,你需要处理机器人的行为。

如果你记录一个IP地址,你将遇到通常停留在代理之后的公司用户的问题,所以每个人似乎都有相同的IP。

也许你应该显示一些CAPTCHA图像来验证人的投票。对于用户来说不能这么难,因为它只能投票一次。

编辑:如何为每个用户强制执行一次投票?

您可以:

  • 要求一个有效的电子邮件,并把链接发给投票
  • 来记录你的用户,让它投票
  • 让用户投票和保存的Cookie
  • 设用户投票和禁止用户IP

所有这些选项都有一个弱点,所以你永远不会确定。

要“解决”这个问题,您可能需要将其虚拟身份与他们的虚拟身份绑定在一起。这可以通过询问个人信息并保存它来完成。但是这带来了一个全新的问题。

+0

CAPTCHA的好主意!所以现在你知道它不是一个机器人。你如何防止同一个用户投票一堆呢? – Matt 2009-12-13 19:35:24

+0

Cookies! ...我的意思是一个cookie。清除它是足够的工作,以避免大多数重复手动投票。 – Tordek 2009-12-13 19:40:56

+0

谢谢你的想法。有一件事......绑定听起来像一个登录。这是我试图避免的一件事情。目标是尽可能简化投票 - 我只是想保持它是一个合法的系统。 – Matt 2009-12-13 19:58:19

2

首先,确保投票使用POST来防止机器人和预先缓存客户端投票。

限制IP地址会导致动态IP范围,代理和共享连接的人员出现问题,所以我不会这样。 大多数这些系统记住用户使用cookie投票,但这当然很容易通过删除cookie或仅使用不同的浏览器来欺骗。

+0

好的电话。关于会话呢? – Matt 2009-12-13 19:35:56

+0

会话需要将唯一值发送回服务器,无论是在cookie中还是在URL中。无论哪种方式,它都可以被删除。 – 2009-12-13 19:51:05

+0

啊是的。好的电话理查德。 – Matt 2009-12-13 20:06:00