如何从Web浏览器获取唯一的PC ID

时间:2014-07-04 04:45:34

标签: php apache

我有一个网络应用程序,它将运行几个特定的​​目标计算机。我可以让用户在登录时选择他所在的机器,但这很容易出错。有没有办法可以从每台PC获取一些唯一的ID,将它们存储在我的服务器上的数据库中,然后当有人从特定的机器登录时,识别该机器?我想到了IP地址,但由于部署的性质,这些也可能会发生变化。但至关重要的是,我知道系统正在运行哪台机器。

注意:我不是要确定Web用户计算机的机器代码,因为这会违反隐私。我知道我的机器所以我想以某种方式将它们绑定到数据库。这对我来说也起到了安全作用,因为我可以拒绝来自未知机器的登录。

感谢您的任何想法。我使用Code Igniter 3和Centos 6.5运行Apache

5 个答案:

答案 0 :(得分:3)

没有客户端组件,浏览器插件或类似的东西是不可能的。最接近的替代方案是:

  • 使用cookies;
  • 使用客户证书;
  • 使用浏览器指纹识别;
每个人都有自己的缺点。

答案 1 :(得分:2)

您可以将其用作计算机ID:

$computerId = $_SERVER['HTTP_USER_AGENT'].$_SERVER['LOCAL_ADDR'].$_SERVER['LOCAL_PORT'].$_SERVER['REMOTE_ADDR'];

它不是完全万无一失的,因为$_SERVER的值可以伪造,但它仍然会添加一层不依赖于cookie的额外安全层。

答案 2 :(得分:1)

用户首次访问您的网站时,请按IP地址识别他们的计算机。然后使用您选择的唯一标识符设置持久性cookie。

下次他们访问该网站时,您可以通过之前设置的唯一标识符Cookie来识别它们。

答案 3 :(得分:0)

我要么

使用bin2hex(openssl_random_pseudo_bytes(512))之类的值 并将其设置为cookie,然后检查cookie

使用基于IP的日志记录,如(127.0.0.1)已键入hello

MAC地址(php库)

答案 4 :(得分:0)

您甚至可以尝试获取MAC地址:

Use this class (https://github.com/BlakeGardner/php-mac-address)

这是一个用于在Unix,Linux和Mac OS X操作系统之上进行MAC地址操作的PHP类。它主要是为了帮助欺骗无线安全审计而编写的。