【发布时间】:2010-12-31 21:14:30
【问题描述】:
我想检测浏览器游戏中的多个帐户:如果用户有多个帐户,我想知道这一点。
由于各种原因,我不想再通过比较 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 cookie 怎么样?他们更好,对吧?但是当我的网站上没有 Flash 时,我不能使用它们,可以吗?
提前致谢!
【问题讨论】:
-
您认为 cookie 比 IP 地址更难更改的原因是什么?
-
嗯......你说得对,它们并不难改变。但是如果一个用户被 cookie 检测到,我可以确定他有多个帐户。如果我通过 IP 检测到它,我不能完全确定。
标签: php security detect account