Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何确保客户端只在一台机器上使用PHP脚本?_Php_Security_Licensing_Protection - Fatal编程技术网

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

如何确保客户端只在一台机器上使用PHP脚本?,php,security,licensing,protection,Php,Security,Licensing,Protection,我有一组PHP脚本放在几个客户机服务器上,我想获取该服务器的mac地址,以便存储它并确定PHP脚本没有在其他服务器上使用 如何使用PHP获取计算机的Mac地址 有没有更好的方法来确定PHP脚本是否正在另一台机器上使用 谢谢大家在你不混淆代码之前,智能客户端可以伪造他们的mac地址 编辑:只是一个简单的想法 在客户端计算机上安装应用程序时,您应该创建一个仅属于该计算机的唯一令牌 例如: 文件创建时间戳 安装时间戳 文件位置很可能在所有客户端都不一样 将这些代码合并、散列、存储,然后在每次页面调用时

我有一组PHP脚本放在几个客户机服务器上,我想获取该服务器的mac地址,以便存储它并确定PHP脚本没有在其他服务器上使用

如何使用PHP获取计算机的Mac地址

有没有更好的方法来确定PHP脚本是否正在另一台机器上使用


谢谢大家

在你不混淆代码之前,智能客户端可以伪造他们的mac地址

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

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

例如:

文件创建时间戳 安装时间戳 文件位置很可能在所有客户端都不一样
将这些代码合并、散列、存储,然后在每次页面调用时进行检查。

在您不混淆代码之前,智能客户端可以伪造其mac地址

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

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

例如:

文件创建时间戳 安装时间戳 文件位置很可能在所有客户端都不一样
合并这些,散列,存储,然后在每次页面调用时检查。

我不认为有一种简单的方法可以从正在访问的PC上获取MAC地址,但我不确定这一点

一种更简单的方法如何:使用会话? 如果没有会话,只需分配一个会话,除非它们使用不同的浏览器,否则每台机器都会有一个会话。你可以把执行锁定在那


它不如锁定MAC电脑那样安全,但仍有很长的路要走…

我认为从访问的PC上获取MAC地址不是一个简单的方法,但我不确定这一点

一种更简单的方法如何:使用会话? 如果没有会话,只需分配一个会话,除非它们使用不同的浏览器,否则每台机器都会有一个会话。你可以把执行锁定在那


它不像在MAC上锁定那样安全,但仍然有很长的路要走…

很久以前,我使用了PHTML编码器url工具。这个工具可以保护你的php代码,你可以设置一些功能,比如只在这台机器上运行。您必须将其安装为php扩展。最终,这是你的解决方案


亲切问候

很久以前,我使用了工具PHTML Encoder url这个工具可以保护你的php代码,你可以设置一些功能,比如只在这台机器上运行。您必须将其安装为php扩展。最终,这是你的解决方案


善意的问候

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

创建一个算法哈希器,每个指纹不固定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.
}

但由于逆向工程,所有这些代码都应该被高度模糊化

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

创建一个算法哈希器,每个指纹不固定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.
}

但由于逆向工程,所有这些代码都应该被高度模糊化

如果要获取运行php代码的web服务器的mac地址,请执行以下操作:

system ('ipconfig /all') 
在窗户上,通常取决于味道

system('netstat -i')
将向您提供一系列网络信息,包括mac地址

但是,我必须警告你,如果你在mac地址不匹配的情况下停止脚本工作,你的客户会讨厌你

想想mac地址发生变化时的情况,以及申请新许可证不适合的情况:-

更换损坏的网卡 软件被转移到一个崭新的服务器上。 系统管理员启动可伸缩虚拟机群集。 软件故障转移到群集中的另一台计算机。 客户发现更便宜/更好的托管提供商。 灾难袭来,客户正试图在另一个数据中心的另一台机器上启动和运行。 客户端计算机有多个网卡。
如果要获取运行php代码的web服务器的mac地址,请执行以下操作:

system ('ipconfig /all') 
在窗户上,通常取决于味道

system('netstat -i')
将向您提供一系列网络信息,包括mac地址

但是,我必须警告你,如果你在mac地址不匹配的情况下停止脚本工作,你的客户会讨厌你

想想mac地址发生变化时的情况,以及申请新许可证不适合的情况: -

更换损坏的网卡 软件被转移到一个崭新的服务器上。 系统管理员启动可伸缩虚拟机群集。 软件故障转移到群集中的另一台计算机。 客户发现更便宜/更好的托管提供商。 灾难袭来,客户正试图在另一个数据中心的另一台机器上启动和运行。 客户端计算机有多个网卡。

我想说,这个问题不是关于连接的HTTP客户端的数量,而是强制执行单个服务器许可证。它不是针对访问的PC,而是针对脚本驻留的PC。我想我们是同时键入的。在这种情况下,您可能应该使用Zend Protection或Nusphere Nucoder之类的编码器将脚本锁定到这台机器上。我认为这将是最好的选择。我选择了一个像样的编码器,避免了昂贵的编码器,但这一功能很有用。我想说,这个问题不是关于连接的HTTP客户端的数量,而是强制执行一个服务器许可证。这不是针对访问的PC,而是针对脚本驻留的PC。我想我们是同时键入的。在这种情况下,您可能应该使用Zend Protection或Nusphere Nucoder之类的编码器将脚本锁定到这台机器上。我认为这将是最好的选择。我选择了一个像样的编码器,并避免了昂贵的编码器,但这一功能很有用。PHP代码是模糊的:我只是想把一些东西放进去,把脚本固定到一台机器上。你能访问你的客户机吗?我的意思是,你可以在机器上放置一些独特的数据,然后再查找它?如果我这样做,我必须为每个客户机做一些事情,我希望自动的通用解决方案。PHP代码是模糊的:我只是想把一些东西放进去,把脚本固定到一台机器上。你能访问你的客户机吗?我的意思是,你可以在机器上放置一些独特的数据,然后查找它?如果我这样做,这是我必须为每个客户机做的事情,我希望得到自动化的通用解决方案。嗯,如果客户机禁用该服务器的internet连接怎么办。脚本无法使用?您可以在本地存储一个有效期为7天的响应哈希,然后需要重新验证,如果没有internet访问,它将使用存储哈希,否则它将每天更新X次。HTTPS将是必需的!嗯,如果客户端机器禁用该服务器的internet连接怎么办。脚本无法使用?您可以在本地存储一个有效期为7天的响应哈希,然后需要重新验证,如果没有internet访问,它将使用存储哈希,否则它将每天更新X次。HTTPS将是必需的!我对他使用mac地址的想法也完全一样。。如果您要求用户更新其配置以满足应用程序的需要,您就无法满足所有要求。@James,谢谢您的回答。您提高了我对使用mac地址问题的认识。顺便说一句,我刚刚发现你也可以通过dos命令使用getmac。@罗伯特皮特:你的意思是要求客户端启用一个有充分理由被禁用的功能吗?对我来说,这似乎是隆重和不可接受的。@fabrik,只有当你的系统被破坏时,它才容易受到攻击。否则,如果你有一个好的严密的应用程序,那么黑客就不能使用这样的命令。我对他使用mac地址的想法也完全一样。。如果您要求用户更新其配置以满足应用程序的需要,您就无法满足所有要求。@James,谢谢您的回答。您提高了我对使用mac地址问题的认识。顺便说一句,我刚刚发现你也可以通过dos命令使用getmac。@罗伯特皮特:你的意思是要求客户端启用一个有充分理由被禁用的功能吗?对我来说,这似乎是隆重和不可接受的。@fabrik,只有当你的系统被破坏时,它才容易受到攻击。否则,如果你有一个好的严密的应用程序,那么黑客将无法使用这样的命令。