2010-02-26 77 views
2

实现此目标的最佳方法是什么?使用Cookie或使用IP控制?ajax评级脚本 - 再次避免投票

+0

在德国,记录IP地址被数据隐私保护法律禁止。所以这里的答案很简单。 =) – Jens 2010-02-26 13:38:44

+0

@Jens即使匿名?即只保留一个IP地址表,而没有其他的东西? – Skilldrick 2010-02-26 13:39:59

+0

相关:http://stackoverflow.com/questions/2318868/what-is-the-best-way-to-prevent-customers-from-rating-a-product-more-than-once/2318900#2318900 – 2010-02-26 13:42:49

回答

0

用户可以删除一个cookie,并且其IP地址可以更改。尽管如此,我仍然会使用IP。

3

这与非Ajax版本没有什么不同。

这取决于你是否愿意冒险做出误报,你能承受多少假的否定以及你想让人们付出多少努力。

CAPTCHA锁定了一些用户,惹恼了更多的用户,但是在停止漫游器和减慢手动转速方面相当有效。

Cookie可以被删除,并被机器人忽略,但减慢了手动转动。

IP日志记录阻止来自同一IP(例如,通过NAT)的多个人,并且人们可以更改他们的IP。

用一个独特的电子邮件地址注册是一个很大的努力为用户,并要求他们放弃个人信息,但是相当有效。

没有解决方案真的很好。你只需要决定你能忍受哪些“坏”的东西。

+0

从编码工作的角度来看,我们可以说cookie是最简单的解决方案吗?它可以用JS客户端脚本来完成。关于注册,我个人从来没有浪费我的时间在网站上注册只是为了投票,所以这是非常费力的。 – 2010-02-26 15:39:41

2

没有解决方案将100%准确。我相信使用cookie更好。用户仍然可以投票两次(一次从家中,一次下班)。同样的事情也适用于IP。

IP的问题是,在同一办公室工作的人可能会看到您的服务器,他们来自同一个IP。使用IP锁定投票将只允许其中一个投票。

另外IP更难实现。您需要将选民IP存储在数据库中。使用cookie更简单。

另一个解决方案是强制用户注册。这样您每个电子邮件地址就会有一个投票。匿名投票将不被允许。

0

您采用的解决方案将取决于投票结果的准确程度以及多张投票的效果会有多严重。记住任何未完整注册的内容都会打开您的系统进行多次投票。事实上,您仍然可以通过注册进行多次投票 - 每次只需输入一个新的电子邮件地址。

如果这只是一个vox流行民意调查,那么cookies可能是一条路。

如果有真正的投票后果(赢得奖品等),那么你需要去完整注册。

所以答案是,这一切都取决于。