繁体   English   中英

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

[英]How to get a unique PC ID from a web browser

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

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

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

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

  • 使用cookies;
  • 使用客户证书;
  • 使用浏览器指纹识别;

每个都有自己的缺点。

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

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

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

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

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

我要么

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

要么

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

要么

MAC地址(php库)

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

使用这个类(https://github.com/BlakeGardner/php-mac-address)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM