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

Posted

技术标签:

【中文标题】在 PHP 中获取唯一的 Web 浏览器 ID【英文标题】:Get Unique web browser ID in PHP 【发布时间】:2014-08-21 22:44:33 【问题描述】:

我正在寻找一种将网络浏览器的唯一 ID 存储在 php 中的方法?我到处搜索..但找不到任何有用的东西。首先,网络浏览器是否有唯一的 ID 或类似的东西来识别它们???就像计算机有一个唯一的 IP 地址一样,浏览器有这样的东西吗?我正在尝试这样做,以便可以将用户详细信息存储到我的数据库中。因此,我们可以找出用户使用哪个浏览器访问我的PHP 网站。我可以将这样的 ID 存储到 php 变量中吗?

例如,网络浏览器的$x= ID

【问题讨论】:

你用cookies跟踪这种事情 Cookie 用于识别用户。我正在尝试识别用户使用的浏览器。 @数字克里斯 当您在数据库中存储 cookie(或唯一哈希)时,会将其与从访问者那里获取的所有其他信息一起存储:IP、浏览器、操作系统、分辨率等。 cookie 的安全性如何? @amenadiel 好吧,首先您只能为您的域设置和读取 cookie。例如,您无法查看访问者浏览器携带的其他 cookie,也无法设置 cookie 来冒充 facebook。您的用户可以在其浏览器中删除或编辑 cookie,但您可以存储散列字符串,这样它们就不会被明显地篡改。 【参考方案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);

【讨论】:

【参考方案2】:

当用户访问您的网站时,您会知道他的 IP、浏览器、操作系统和其他内容。您需要知道下一次同一用户访问您时(相同的 IP,可能是相同的登录名)是否使用相同的浏览器。这可以通过两种方式实现:

a) 创建一个 cookie,将其存储在浏览器和您的数据库中,然后将拥有该 cookie 的每个访问者与您现有的 cookie 表进行比较以识别他。如果 cookie 的过期时间很长,它不会在会话中丢失,并且对于每个浏览器都是唯一的。但是如果用户清除cookies就会丢失。

b) 在浏览器的本地存储中存储一个字符串。这与 cookie 方法的工作方式几乎相同,但数据没有过期日期,并且删除它而不是清除 cookie。

还有其他方法,例如组合不同类型的 cookie 以提供冗余。我记得a project called Evercookie 做过类似的事情。我相信它现在几乎被废弃了。

【讨论】:

以上是关于在 PHP 中获取唯一的 Web 浏览器 ID的主要内容,如果未能解决你的问题,请参考以下文章

是否可以从移动设备获取唯一标识号?

在社交名流中获取个人资料链接?

[转] web前端js构造无法销毁的类UUID识别码,识别浏览器设备唯一性

cookie是啥

如何在 php 中获取当前浏览器 URL? [复制]

如何使用 PHP 和 Smarty 同时获取数据并在浏览器中显示?