繁体   English   中英

如何在PHP中获得主机的唯一ID?

[英]How can I get a host computer unique ID in PHP?

我需要想出一种唯一标识计算机的方法。 在php应用程序运行时可以轻松获取诸如系统ID或来自CPU的信息,这些信息不容易被黑客入侵,然后通过Internet发送到中央数据库以激活或验证许可证密钥。

系统信息:

  • Web共享主机或本地网络
  • Linux(可以是任何发行版)
  • 阿帕奇
  • 的PHP

预先感谢您的任何答复

没有“不能被黑客入侵”之类的东西。 有很多方案可以执行此操作,但是大多数方案都会激怒合法客户,而不是停止非法使用。 MAC地址应该是唯一的,但是大多数NIC都可以很容易地对其进行重新配置,只需重新配置MAC,就可以在其他任何计算机上使用您的许可证密钥(它必须位于其他计算机的子网之外,使用相同的MAC)。

如果您真的想继续前进,我建议您研究加密技术和数字签名,这可能会让您步入正轨,但它很可能不会阻止坚定的黑客。 即使您可以在系统中找到独特的东西,并且无法更改,在php应用程序(操作系统或正在使用的任何库)之间仍然存在一层,或者可以替换以提供预定义的php代码本身与许可证密钥中的数据匹配的数据。 更不用说合法客户将无法投资新硬件,具有冗余系统作为后备系统,或对您的软件进行任何其他完全合法的使用,而这些软件没有与特定系统绑定。

我认为,最好的选择是信任不希望非法经营的客户。 任何“强制执行”许可证都应该只是帮助您的客户续订许可证,我个人也不认为过期的许可证会停止软件的运行,它可能会na废它,但不能立即停止。 只需在客户名称上签名,并用私钥到期就足够了。 只要复制的系统使用相同的“客户名称”,它仍然可以被复制,但是同样,他们仍然可以破解您的php文件而不显示它。

为什么不使用NIC的MAC地址? 它们应该是唯一的。

您可以使用此处介绍的技术获取MAC。

请记住,没有什么灵丹妙药 :如果人们真的想要您的(假定是服务器端软件),他们就会得到它……这只是时间和精力的问题。

使用php exec命令运行命令以获取MAC地址

我记得有一家公司做到了这一壮举,但却使用了计算机编程语言。 似乎Windows的每个安装在注册表中都有一个唯一的项,用于唯一标识所述安装。 他们的程序报告了此密钥。 但是,如果在最终用户计算机上没有这样的报告程序,则很难做到这一点。

除非您碰巧极富创造力并提出其他建议,否则上面提到的唯一可用的工具如下。

  • 届会
  • 曲奇饼
  • 用户名
  • 密码
  • 电子邮件地址
  • 问题和答案
  • IP地址
  • 浏览器
  • 操作系统
  • 推荐人
  • 浏览哈比斯
  • 请求时间
  • 申请方法
  • 请求URI
  • 港口
  • 连接
  • 编码方式
  • 语言
  • http接受

好吧,我希望我一切都正确,而不仅仅是自欺欺人。

上面提到的所有内容都涉及到从用户计算机上读取某些内容,在用户计算机上放置一些内容,记录事件或这三者的组合。 为了绝对确保您可以唯一地标识用户,我建议使用以上所有方法。 但是,什么时候足够?

尝试跟踪用户时,您真正需要关心的唯一事情如下。

  1. 用户的详细信息会更改吗?
  2. Cookie会过期吗?
  3. 用户将删除cookie。
  4. 用户是否将更改浏览器窗口以使会话静音。

当其中一个发生故障时,其他故障将解决,您可以修复损坏。

暂无
暂无

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

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