【问题标题】:Get Unique web browser ID in PHP在 PHP 中获取唯一的 Web 浏览器 ID
【发布时间】: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,但您可以存储散列字符串,这样它们就不会被明显地篡改。

标签: php google-chrome firefox safari browser


【解决方案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 做过类似的事情。我相信它现在几乎被废弃了。

    【讨论】:

      猜你喜欢
      • 2011-06-23
      • 1970-01-01
      • 1970-01-01
      • 2014-07-12
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      • 1970-01-01
      相关资源
      最近更新 更多