我有一个网络应用程序,它将运行几个特定的目标计算机。我可以让用户在登录时选择他所在的机器,但这很容易出错。有没有办法可以从每台PC获取一些唯一的ID,将它们存储在我的服务器上的数据库中,然后当有人从特定的机器登录时,识别该机器?我想到了IP地址,但由于部署的性质,这些也可能会发生变化。但至关重要的是,我知道系统正在运行哪台机器。
注意:我不是要确定Web用户计算机的机器代码,因为这会违反隐私。我知道我的机器所以我想以某种方式将它们绑定到数据库。这对我来说也起到了安全作用,因为我可以拒绝来自未知机器的登录。
感谢您的任何想法。我使用Code Igniter 3和Centos 6.5运行Apache
答案 0 :(得分:3)
没有客户端组件,浏览器插件或类似的东西是不可能的。最接近的替代方案是:
答案 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类。它主要是为了帮助欺骗无线安全审计而编写的。