0

我尝试搜索,但没有找到任何我认为正是我正在寻找的东西,简而言之,如果这是重新发布,我很抱歉。

我目前正在寻找某种 ID 或 GUID 类型的 ID,它可以识别用户机器或用户或类似的东西,每次(无需登录到任何登录系统)他们都可以获得与他们直接相关的 id。这可能没有意义,所以请继续阅读......

基本上,我希望他们每次点击页面以获取我正在编写的应用程序的某种分析部分时都获得相同的 id。我可以访问服务器端脚本,对我来说最快和最简单的是 PHP,我也一直在研究它,但似乎无法找到一种方法来使该唯一 ID 可重复。

我真的不想依赖cookies,这就是为什么我想尝试制作这个可重复的id,我知道这是一个很长的镜头,但是我可能不太了解技术中的某些东西(可能是闪存或其他东西) 每次访问该页面时都能够为该机器/用户/mac地址一遍又一遍地获取一个ID?

我还将为会话存储一个典型的 GUID(这已经完成),但困难的部分是 Id 就像另一个 ID 以某种方式与 USER、PC、MAC 等相关。

TLDR:有没有人对我如何获得可重复的标识符有任何想法(当同一台机器或用户每次访问页面时访问相同的字符串)?有没有一种我可能没有想到的技术可以做到这一点,主要是跨浏览器可以做到这一点,我想我已经用完了 java 脚本选项,可能是 flash 或 HTML5 之类的东西(虽然我会喜欢它可以跨浏览器访问)或者甚至是某种 API 或服务?

是否有一堆字段可以可靠地连接和编码,即使它不是 100% 万无一失的?闪存或其他一些技术可以抓住机器或其他东西独有的东西吗?有没有其他一些非标准的技术可以做到这一点,比如动作脚本或 VBScript(虽然我什至不知道这是否仍然有效,哈哈)或类似的东西?

非常感谢,如果我没有看清楚或者帖子太长,我很抱歉:)

4

1 回答 1

-2

如果你使用$_SERVER数组,你可以读出一些客户特定的信息。就像主机名、IP 和其他东西一样。在找到满足您需要的足够独特的客户端信息组合后,您只需对其进行哈希处理,并将其存储在某个地方以供进一步使用,例如在文件、数据库或 APC 等缓存中。

例子:

$strUserId = $_SERVER['REMOTE_HOST'] . $_SERVER['HTTP_USER_AGENT'];
$strUserId = hash( 'sha256', $strUserId );

if( clientExists( $strUserId ) ) {
  $oSomeData = loadClientData( $strUserId );
}
else {
  $oSomeData = new Stuff();
}

$oModifiedData = doStuffWith( $oSomeData );

saveClientData( $strUserId, $oModifiedData );

问题在于,具有相同 IP 和相同浏览器(-version)的 2 个用户可以获得相同的 ID。此外,如果用户返回一个新的主机名或浏览器版本,他将获得一个新的 ID。

如果不在客户端上存储一些信息,您将无法保证安全。

于 2012-11-12T14:40:23.910 回答