在 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的主要内容,如果未能解决你的问题,请参考以下文章