代码之家  ›  专栏  ›  技术社区  ›  Abs

如何确保客户端只在一台计算机上使用PHP脚本?[关闭]

  •  1
  • Abs  · 技术社区  · 16 年前

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

    我怎样才能用PHP获得计算机的MAC地址呢?

    有没有更好的方法来确定PHP脚本是否在不同的机器上使用?

    谢谢大家

    5 回复  |  直到 16 年前
        1
  •  1
  •   Blizz    16 年前

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

    一个简单的方法如何:使用会话? 只需分配一个会话,如果没有会话,每台机器就有一个会话(除非它们使用不同的浏览器)。你可以锁定执行。

    它不像锁定Mac那样“完全安全”,但仍然有很长的路要走…

        2
  •  2
  •   fabrik    16 年前

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

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

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

    例子:

    • 文件创建时间戳
    • 安装时间戳
    • 文件位置(很可能所有客户端都不相同)

    合并这些,散列它,存储它,然后在每次页面调用时检查。

        3
  •  1
  •   James Anderson    16 年前

    如果要获取运行PHP代码的Web服务器的MAC地址,请执行以下操作:

    system ('ipconfig /all') 
    

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

    system('netstat -i')
    

    会给你一堆网络信息,包括MAC地址。

    但是,我必须警告您,如果您停止您的脚本工作时,MAC地址不匹配,您的客户端将恨您!

    考虑MAC地址更改的情况以及申请新“许可证”的方式是否适合:

    • 更换损坏的网卡
    • 软件被传输到一个闪亮的新服务器。
    • 系统管理员启动可伸缩虚拟机群集。
    • 软件故障转移到群集中的另一台机器上。
    • 客户找到更便宜/更好的托管提供商。
    • 灾难发生时,客户机正在另一个数据中心的另一台机器上进行启动和运行。
    • 客户端计算机有多个网卡。
        4
  •  0
  •   Sinderella_42    16 年前

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

    亲切问候

        5
  •  0
  •   RobertPitt    16 年前

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

    创建一个算法散列器,该散列器不坚持每个指纹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.
    }
    

    但由于逆向工程,所有这些代码都应该非常模糊!