这个问题不是关于阻止单个用户注册多个帐户。假设无法阻止注册多个帐户,但我们要避免/检测的是用户使用帐户为自己投票时。这将适用于 SO 或 digg 之类的网站,其中用户创建第二个帐户仅用于投票支持他们的第一个帐户。
有什么想法可以防止/检测以这种方式对系统进行游戏吗?任何见解是如何做到的?:)
这个问题不是关于阻止单个用户注册多个帐户。假设无法阻止注册多个帐户,但我们要避免/检测的是用户使用帐户为自己投票时。这将适用于 SO 或 digg 之类的网站,其中用户创建第二个帐户仅用于投票支持他们的第一个帐户。
有什么想法可以防止/检测以这种方式对系统进行游戏吗?任何见解是如何做到的?:)
该网站的创建者写了关于Vote Fraud 和 You的文章。
当用户 B 上次从与用户 A 相同的终端点连接时,阻止用户 A 投票支持用户 B。您可以尝试通过 IP 地址、cookie 或两者的组合来跟踪终端身份 - 所有这些都很容易被确定的人击败用户(使用匿名代理或多个 wifi 连接、cookie 清除或使用多个浏览器等)当然,不可避免地不喜欢从后面(例如公司)代理访问您的网站的个人。
如果您的投票模型允许,另一个补充防线将是降低潜在勾结的投票价值,例如,如果用户 A 投票给用户 B,而用户 B 投票给用户 A,那么您可以任意决定将投票分配给两个(每个 0.5 分);您可以根据现有声誉对此进行细微差别(逐渐停止惩罚具有高声誉的用户),或者不进行细微差别(假设具有高声誉的用户,即使正确地为彼此投票 - 或者如果不诚实则为自己投票 - 不会介意更努力地工作以获得额外的声誉)等。
似乎一个明显的迹象是,当一个用户帐户将几乎所有的赞成票投给另一个用户帐户时。
如果我正在编写一个算法来寻找投票欺诈,我可能会这样开始:对于每个用户帐户 A,创建一个直方图,显示对于每个 N=1,2,3,... 的投票数,有多少其他账户获得了来自 A 的 N 票?顺便说一句,我猜这将是一种递减的指数分布,例如,A 已经投票了 100 个帐户一次,50 个帐户两次,25 个帐户 3 次,依此类推……关键是,它在仅仅一个计数很少(在这种情况下,在 N~8 之后)。如果账户 A 过于频繁地支持某个特定账户,您会看到一个非常大的 N 的计数,例如 80 或 100,您可以使用系统标记让您更仔细地查看。
让自己投票的一种更简单的方法是发布智能回复。人们也可以诉诸某种形式的点击劫持来鼓励其他人投票给你,而他们没有采取明确的行动。
它不可锁定,但我们可以向公众展示一些统计数据,并且可以避免用户这样做。这是我的答案。
如果 StackOverflow 上有两个人,'A'和'B'。
如果“B”对“A”的投票超过 25 次,那么这应该显示在A 的个人资料上。
现在,如果“B”的声望超过 500,则表示“B”也参与 SO。
如果“B”的声望低于 500 并且对“A”投票25 次,则可能是“B”是假个人资料。
万一,如果“B”在投票后被删除,那么这应该在某些特殊情况后显示在个人资料上。
或者
他们应该是每个用户个人资料的一些统计信息,如下所示:
10 up-votes from profiles with above 10,000 rep
27 up-votes from profiles with above 5,000 rep
50 up-votes from profiles with above 3,000 rep
45 up-votes from profiles below 1,000 rep
10 up-votes from deleted profiles.
20 up-votes from inactive profiles.
或者
20 rep on one up-vote from a person with above 10,000 rep
15 rep on one up-vote from a person with above 5,000 rep
10 rep on one up-vote from a person with above 1,000 rep
05 rep on one up-vote from a person with above 500 rep
02 rep on one up-vote from a person with below 500 rep
或者像上面这样的东西可以提供帮助。