在PHP中获取唯一的Web浏览器ID

4
我正在寻找一种在PHP中存储Web浏览器唯一ID的方法。我已经搜索了所有地方,但没有找到有用的信息。首先,Web浏览器是否具有唯一标识符或类似于此以识别它们的东西?就像计算机具有唯一的IP地址一样,浏览器是否有类似的东西?我正在尝试这样做,以便可以将用户详细信息存储到我的数据库中。这样,我们就可以找出用户使用哪个浏览器访问我的PHP网站。我能把这样一个ID存储到一个PHP变量中吗?
例如:$x = Web浏览器的ID。


你可以使用cookies来跟踪这种事情。 - Digital Chris
Cookies用于识别用户。我正在尝试识别用户使用的浏览器。@Digital Chris - Smokey
当您将cookie(或唯一哈希)存储在数据库中时,您会将其与从访问者获取的所有其他信息一起存储:IP、浏览器、操作系统、分辨率等。 - ffflabs
一个 cookie 有多安全?@amenadiel - Smokey
1
首先,您只能为自己的域设置和读取cookie。您无法查看访问者浏览器中携带的其他cookie,也不能设置cookie来冒充Facebook等。用户可以在其浏览器中删除或编辑cookie,但您可以存储散列字符串,以便它们不容易被篡改。 - ffflabs
2个回答

4
当用户访问您的网站时,您会知道他的IP、浏览器、操作系统和其他一些信息。您需要知道下次同一用户访问您的网站(相同的IP、相同的登录)是否使用相同的浏览器。这可以通过两种方式实现:
a) 创建一个cookie,将其存储在浏览器和数据库中,然后将具有该cookie的每个访问者与现有的cookie表进行比较以识别他。如果cookie的过期时间非常长,它将不会在会话之间丢失,并且对于每个浏览器都是唯一的。但是,如果用户清除了cookie,它将会丢失。
b) 在浏览器的本地存储中存储一个字符串。这与cookie方法基本相同,但数据没有到期日期,而且删除它比清除cookie要困难得多。
还有其他方法,例如组合不同类型的cookie以提供冗余。我记得一个名为Evercookie的项目做了类似的事情。我认为现在它几乎被放弃了。

1

您可以使用browscap库,然后对浏览器信息进行md5处理:

使用GaretJax/phpbrowscap

$bc = new \phpbrowscap\Browscap('data/');
$current_browser = $bc->getBrowser(null,true);
$str = json_encode($current_browser);
$browser_id = md5($str);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接