创建许可证系统

时间:2012-05-14 05:56:09

标签: php mysql security licensing

我为我工作的公司开发了一个信息管理系统。

现在我想制作一种许可系统,以帮助防止任何人只需复制并在自己的家庭服务器上进行设置并将其用于任何目的。

我知道也许最简单的方法是在系统的每个页面上包含对存储在远程文件中的密钥的引用或类似的东西,但我认为这可能很容易通过一些努力来解决

保护我的工作的最佳方法是什么?

7 个答案:

答案 0 :(得分:1)

最好的方法是根据机器的硬件值生成密钥。所以取ram,处理器类型,速度,mac地址,bios版本等等。一旦你拥有所有这些值,使用它们来生成哈希。每个用户还应拥有购买的唯一ID。首次使用该软件时,它应将用户ID和哈希值发送到您的服务器。每次运行软件时(以及运行时的不同时间),软件都应将这两个ID发送到服务器。如果散列与对应于用户ID的散列不匹配,则拒绝访问该软件。如果用户更改了他们的硬件或想要在不同的计算机上安装,他们应该能够提交重置其哈希的请求。还要确保使用SSL进行许可通信,并尽可能模糊代码。如果要将其锁定到域,还可以将脚本运行的域名添加到用于哈希的数据

答案 1 :(得分:1)

在PHP中很难做到这一点,因为源是对所有人开放的,但你可以做类似的事情来修改索引以获取服务器的名称或IP并在数据库中检查它,如果你允许它进程的话返回ok,一切正常,否则你向索引发送一个自毁命令,索引将从其目录中删除所有文件和文件夹,你可以找到命令here,你可以删除maxdepth递归删除所有文件和文件夹的参数,并记住没有完美的解决方案,因为另一方可以轻松地更改索引源代码。

答案 2 :(得分:1)

从安全角度来看,普遍的共识是你不能保证它不会被盗,所以你必须权衡你想要为攻击者制造它的难度。我们已经在Security Stack Exchange上讨论了这个问题。

在那边查看this question,然后查看所有问题tagged drm

答案 3 :(得分:0)

如果您不能保证.php文件会被盗,那么您最好的选择是混淆源代码 - 因此它变得难以理解并且很难转换为常规代码。我不在这里做广告,只是我知道Ioncube做得很好。

我还建议您使用多种方法 - 比如两者许可文件和混淆 - 这将更难打破。

请参阅this回答。

答案 4 :(得分:0)

开发自己的许可系统似乎比第一眼看上去更复杂,更复杂。最好使用市场上已有的解决方案来节省大量的时间和金钱。

如果您的产品在Windows下运行(Linux即将推出)并使用C ++编写,请检查http://activation-cloud.com

它在复制保护方面做得很好(在服务器上保留计算机ID)。我们目前正致力于提供良好的防裂保护。

答案 5 :(得分:0)

您可以访问WordPress许可系统,一般PHP和软件 License

答案 6 :(得分:0)

使用http://www.phplicengine.com您可以远程或本地许可您的代码,然后使用http://www.ioncube.com

对源代码进行模糊处理