Php Web应用程序激活|计算机、本地服务器

Php Web应用程序激活|计算机、本地服务器,php,c++,mysql,cakephp,wamp,Php,C++,Mysql,Cakephp,Wamp,我做了一些研究,发现了一些可能有用的东西。 我想听听你对我在这方面的看法 目标 我将用PHP开发一个应用程序(这是我唯一知道的语言,不幸的是我现在没有时间学习另一种语言)。我希望这个应用程序能够脱机运行,并在本地运行到任何pc。我将使用Wamp服务器和cakePHP框架 问题 此应用程序将出售。因此,我需要一些激活方法,以防止在多台计算机上使用每个应用程序。我不想要复杂或非常安全的东西。我只需要一些简单的东西,以防止非程序员在任何计算机上运行此应用程序。当然,越安全越好!:) 我正在考虑的可能的

我做了一些研究,发现了一些可能有用的东西。 我想听听你对我在这方面的看法

目标

我将用PHP开发一个应用程序(这是我唯一知道的语言,不幸的是我现在没有时间学习另一种语言)。我希望这个应用程序能够脱机运行,并在本地运行到任何pc。我将使用Wamp服务器和cakePHP框架

问题

此应用程序将出售。因此,我需要一些激活方法,以防止在多台计算机上使用每个应用程序。我不想要复杂或非常安全的东西。我只需要一些简单的东西,以防止非程序员在任何计算机上运行此应用程序。当然,越安全越好!:)

我正在考虑的可能的解决方案

首先,我想通过在安装过程中上网来强制用户激活他们的应用程序。这样他们就可以从我的在线数据库中获得唯一的密钥

我找到了php的shell_exec命令。所以我想,在在线安装过程中,获取该计算机的主机ID(机器ID),将其发送到我的服务器,并将其存储到我的数据库中的唯一密钥旁边。然后可以将机器ID和唯一密钥存储到php文件中。(我可以把它存放在更安全的地方吗?也许可以加密?)

每次用户打开应用程序时,php都会读取机器ID。如果与php文件中存储的机器ID不同,则需要激活。(可能还可以存储计算机的名称或其他id?)

这是一个好方法吗?可能吗

我正在考虑的另一种方法是让一个人创建一个非php安装文件。运行时,将提示wamp安装,安装完成后,将所有必要的文件传输到wamp根文件夹(用户自动化)。我只能猜测,虽然这将工作,因为我对其他语言的知识是有限的

我能从中受益吗?一个非php文件能否与我的php应用程序交互并验证它,只针对一台唯一的计算机

任何信息都将不胜感激。我刚刚开始构建应用程序,想知道是否有一种好方法(或非)来保护它


谢谢

所有这些都没有意义,因为如果人们想要,他们可以简单地破解你提出的任何复制保护方法。这也适用于任何其他语言编写的任何其他应用程序。如果人们想在没有权限的情况下使用它,有很多方法可以做到

有一些方法可以混淆代码(请参阅),但这些解决方案很愚蠢,因为如果人们真的需要,他们无论如何都可以以纯文本形式获取代码


更好的办法可能是在你的服务器上运行该应用程序,并允许人们每月付费,软件即服务,如Google Apps for Business。

PHP不是编译的,因此除非你计划对其进行编码,否则每个人都可以访问你的源代码。我认为是时候学习一种更适合桌面应用程序开发的语言了……谢谢Cillosis,但目前php是我唯一的选择。如上所述,我只是寻求最低限度的保护,从非程序员用户。或者也许是我所拥有的最好的保护。代码对非程序员来说是可怕的。说吧,我同意!但我不希望他们只是把文件复制粘贴到另一台计算机上,然后让它工作。我想让这件事尽可能困难。不是不可能/不是蛋糕的和平。只是研究一下方法。再次感谢!谢谢你的回答,Burzum。我相信虽然你没有读我的全部帖子。我知道没有完美的保护,尤其是php。正如我在给Cillosis的信中所说的,我只是在寻求对非程序员用户的最低限度的保护。或者也许是我拥有的最好的保护。再次感谢您抽出时间回答,我发现它非常有用。也许过几天检查它是否正确。至于在线应用,我想了想,但真的不想限制用户在线。这将是一个巨大的缺点。这仍然是毫无意义的。我不知道你的计划是什么,但对于“非程序员”来说,找到一个“程序员”来解决“保护”问题并不难。如果你真的想依赖任何一个只懂一点编程知识的人都可以修复的东西,你可以做你想做的事情,检查硬件是否匹配给定的散列。但是任何一个php孩子都可以在几分钟内找到并删除它。这个应用程序不会“出名”,也不会很昂贵,所以我相信程序员不会太在意获得代码,顺便说一句,创建代码也不会那么困难。主要是一个数据库,用于保存客户及其行为。我也不认为对bying it感兴趣的人会雇佣程序员。这可能会比实际的应用程序花费更多。你能告诉我如何检查硬件是否与给定的哈希匹配吗?我也在认真考虑按照你最初的建议,把它变成一个在线应用程序。感谢您的帮助。这取决于您的系统(win或*nix)。任何操作系统都可以使用不同且丰富的工具来读取硬件信息。只需搜索如何获取网卡的cpu id或mac地址。我仍然会选择在线服务。如果你的应用程序有一个可靠的API,这可能是一个更好的主意。而且你的客户不需要雇佣程序员,正如我所说的,任何能阅读的孩子都能找到并删除一个简单的字符串比较,比如if($cpuId==$licensedcpuid)。我害怕在线应用的唯一原因是客户信息的敏感性。比如姓名、地址、生日、购买的物品等等。即使安全性真的很高,也存在风险。无论如何,我开始使用cakePHP框架构建应用程序。我将严格遵守cakePHP的“规则”,因此应用程序将尽可能安全。再次感谢。。。