1

我想在浏览器游戏中检测多个帐户:如果用户有多个帐户,我想知道这一点。

由于各种原因,我不想再通过比较 IP 来检测多个帐户。用户可以共享 IP,并且 IP 易于更改。所以这不是一个好方法。

相反,我想使用 cookie 检测帐户。你认为这是一个好的解决方案吗?

<?php
$uniqueHash = md5($_SERVER['REMOTE_ADDR'].mt_rand(1, 100000)); // identify a single user
if (isset($_COOKIE['uniqueHash'])) {
    // UPDATE dbTable SET uniqueHash = '".$_COOKIE['uniqueHash']."' WHERE id = x
}
else {
    setcookie('uniqueHash', $uniqueHash, time()+3600*24*30, '/', '.domain.com', FALSE, TRUE)
}
?>

之后,我可以从数据库表中选择所有具有相同 uniqueHash 值的用户。

这可以改进吗?还是一个完全糟糕的解决方案?

快闪饼干呢?他们更好,对吧?但是当我的站点上没有 Flash 时,我不能使用它们,可以吗?

提前致谢!

4

2 回答 2

3

如果您创建包含登录日期、ip、哈希和用户 ID 的日志 - 您可能能够了解用户是否是多帐户。自动检测几乎是不可能的,如果我拜访我的朋友,我可能会登录他的电脑查看我的帐户?

所以记录所有数据,然后进行“多人猎人” - 人类调查,看看它是否是同一个玩家。

于 2010-01-02T23:34:24.800 回答
1

将值存储到 cookie 中甚至比比较 ip 的恕我直言还要糟糕。Cookie 很容易更改/删除,而更改您的 ip 则要困难得多。

我认为最好的办法是拥有一些标记可疑帐户的基本 AI 解决方案。因此,同时使用相同 IP 的多个登录(可能是 IP 共享或同时多个浏览器)是 AI 应该选择的。还可以在短时间内查看使用不同帐户从同一 ip 注销和登录。尝试查找主机名并使用它,因为 ISP 的 DHCP 有时会给客户端一个新的 ip,但主机名保持不变。

关键是没有基于一条信息的解决方案。

顺便说一句,想到的另一个解决方案是让用户通过发送短信确认他们的帐户,让他们支付非常少的金额(如 1 美元),在这种情况下,注册多个帐户没有吸引力。

于 2010-01-03T00:13:43.823 回答