代码之家  ›  专栏  ›  技术社区  ›  caw

通过cookies检测多个帐户

  •  1
  • caw  · 技术社区  · 15 年前

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

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

    相反,我想使用cookies检测帐户。你认为这是个好办法吗?

    <?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时,我就不能使用它们了,是吗?

    提前谢谢!

    2 回复  |  直到 15 年前
        1
  •  3
  •   Cederstrom    15 年前

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

    所以记录所有的数据,然后有一个“多猎人”-人类的调查,如果它是同一个球员或不是。

        2
  •  1
  •   Henri    15 年前

    将值存储到cookies中比比较ip的imho还要糟糕。Cookie很容易更改/删除,而更改您的IP则困难得多。

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

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

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