如何确保PHP脚本仅由客户端在一台机器上使用?

时间:2010-08-24 09:43:22

标签: php security licensing protection

我有一组PHP脚本位于多个客户端服务器上,我想获取该服务器的mac地址,以便我可以存储它并确定PHP脚本没有在另一台服务器上使用。

如何以某种方式使用PHP获取计算机的Mac地址?

有没有更好的方法来确定PHP脚本是否在其他计算机上使用?

全部谢谢

5 个答案:

答案 0 :(得分:2)

在您不对代码进行模糊处理之前,智能客户端可以伪造其mac地址。

编辑:(只是一个简单的想法)

当您在客户端的计算机上安装应用程序时,您应该创建一个仅属于该计算机的唯一令牌。

示例:

  • 文件创建时间戳
  • 安装时间戳
  • 文件位置(所有客户的机会大不相同)

合并这些,哈希,存储,然后检查每次页面调用。

答案 1 :(得分:1)

我认为从访问的PC上获取MAC地址并不容易,但我不确定。

如何更简单的方法:使用会话? 只要分配一个会话,如果没有,你最终会得到一台机器(除非他们使用不同的浏览器)。你可以把执行锁定到那个。

它不像锁定MAC一样“完全安全”,但仍然有很长的路要走......

答案 2 :(得分:1)

如果你想得到运行你的php代码的web服务器的mac地址,那么:

system ('ipconfig /all') 

在窗户上,通常(取决于味道!)

system('netstat -i')

将为您提供一系列网络信息,包括mac地址。

但是我必须警告你,如果你的mac脚本与你的客户不匹配就停止你的脚本工作会讨厌你!

考虑一下mac地址发生变化的情况以及申请新“许可证”的情况如何(不适合): -

  • 已更换损坏的网卡
  • 将软件转移到闪亮的新服务器上。
  • 系统管理员启动灵活的虚拟机群集。
  • 软件故障转移到群集中的另一台计算机。
  • 客户发现更便宜/更好的托管服务提供商。
  • 灾难发生,客户正在尝试在另一台数据中心的另一台计算机上运行并运行。
  • 客户端计算机有多个网卡。

答案 3 :(得分:0)

很久以前我使用过工具PHTML Encoder(url http://www.rssoftlab.com/)这个工具可以保护你的php代码,你可以设置一些功能,比如“只能在这台机器上运行”。你必须安装这个PHP扩展。最终这是一个解决方案。

亲切的问候

答案 4 :(得分:0)

我认为实现这一目标的最佳方法是生成自己的算法来指纹服务器,用于创建指纹的代码应该进行模糊处理,以防止逆向工程,但这是可能的。

创建一个算法哈希,每个指纹不会粘到1个值,让值变化。

这样你就可以ping主服务器,然后验证哈希值。

例如

function GenerateFingerPrint($account) //Each machine has a static UNIQUE ID
{
    //Create a fingerprint for the machine and machines location

    //Post the $account + $fingerprint to MAINSERVER.COM

    // Get hashed responce

    //Decode it and validate it to continue with script.
}

但是由于逆向工程,所有代码都应该高度混淆!