1

我已经为在线视频实施了一个投票系统,其中访问者在任何一天只能投票一次。我结合使用他们的电子邮件地址和时间戳来确保当天的每张选票都是独一无二的。

正如您可能猜到的那样,这会导致人们通过在 mailinator.com 等上注册一次性电子邮件地址来玩弄系统,所以我想知道是否有人尝试实施任何其他允许同一个人进行多次投票的投票算法。此外,这种设置意味着,如果视频 #1 与视频 #2 相关联的人更多,则视频 #1 已经处于不公平的优势。

我正在考虑一个排名系统,但我不完全确定如何防止任何人使用虚假电子邮件地址游戏系统。我试图解决的问题是这样的:

给定 3 个视频,A、B 和 X。A 有 5 个人,B 有 2 个,X 有 4 个。
假设 X 是三个视频中最好的,并且人们每天都可以投票,是否有投票系统这将有助于“B”上升到顶端?

就像我说的,我提出的排名系统会假设如果#2 的数量超过#1 的数量,那么可以安全地假设应该是赢家,但这似乎不完整。

有没有人处理过这样的事情?请记住,这些结果的数量非常少(我们平均大约 500 票/7 天),所以 2 个人可以真正发挥作用。

如果有帮助,它位于共享托管环境中的 LAMP (PHP) 堆栈上。

此外,如果您想知道为什么我们允许同一个人进行多次投票,那是因为高层意识到这有助于增加网站的流量,并且他们真的很喜欢看到图表上升(尽管随后的点击量很不错)无意义的)。

在此先感谢您,如果您需要任何其他信息,请告诉我。

4

3 回答 3

2

你实际上是在问两个不同的事情:

First, how can you prevent people gaming the system? This is pretty intractable. You can raise the bar for placing a vote, by requiring registration, a minimum reputation like SO, or other restrictions, but ultimately all you can hope to do is reduce cheating, not eliminate it. Consider that people successfully register multiple times for physical political elections, then evaluate how likely it is that you can eliminate all cheating on your site.

Second, how do you give a fair quality ranking to different items that may have different popularity and have been around for different times? One very good solution is described here by Randall Munroe. That article links to the actual algorithm, which is fairly straightforward to implement.

于 2011-04-13T03:26:54.063 回答
1

没有登录系统就无法解决您的问题。除非您为他们提供一个真正的身份验证系统,该系统需要几个步骤来创建帐户,否则人们将继续击败您的系统。顺便说一下,OpenID 非常适合这个。

不要使用大量基于 cookie 的东西(尤其是不要使用 Evercookie)。这是对您用户隐私的侵犯。我永远不想在我的电脑上放一个僵尸饼干。

如果他们一直在玩弄你,你无能为力,只能手动标记垃圾帐户并删除相应的选票。

或者你可以做一个基于信誉的系统,只需最少的代表投票(如 StackOverflow)。

如果您想要一个快速安全的工作解决方案,请查看OpenID 。

于 2011-04-11T18:12:30.390 回答
1

网上有一个问答平台——不知道你是否听说过——它叫做 stackoverflow.com ;-)

也许你可以在这个网站上采用评级系统?我发现只允许具有给定评级的用户以多种方式操纵系统非常聪明。您可以按帐户年龄(例如,仅从注册后 2 周开始计算投票)或某种信誉系统来选择用户。

于 2011-04-11T18:13:23.923 回答