2009-08-31 50 views
0

我正在开发一个计划销售和分销的PHP应用程序。我想控制哪些人可以访问应用程序的主要功能,并通过某种方式调用我的服务器来安装,这将检查脚本的安装位置(example.com)是否在数据库中,甚至可能检查许可证密钥某种程度上。如何使用btcompiler和许可证密钥保护PHP产品?

  1. 任何人有任何安全分布式PHP程序的一般准则?我并不期望完全的安全性,但我希望通过试用来发布脚本,并希望阻止普通人修改代码以避免购买脚本。

  2. 我有两个想法 - 有一个脚本“电话回家”与脚本服务器地址,并检查该地址对数据库(足够简单),或除了生成某种类型的许可证密钥和将该密钥硬编码到脚本中,无论是在文件中还是在数据库中安装查询。

我的问题是,如果我走了后一条道路(硬编码),什么是硬编码的最有效的方式在运行时钥匙插入脚本,这一切包装成一个独特的zip文件?

  1. 我将使用bcompiler来尝试和混淆上面使用的认证功能。我知道你需要支持编译成PHP的bcompiler,以便编写字节码,但是有没有什么特殊要求去运行编译后的字节码?我的应用程序将在各种机器上运行,但是它们都具有运行PHP5的通用条件,所以代码需要能够在限制性托管环境中工作(例如,他们无法上传外部第三级PHP库,例如)。

回答

3

考虑看看这些问题/回答可以帮助你至少位:

它不会充分回答你的问题,但仍可能证明是有用的:-)


尽管如此,我的主要思想是,你的问题是比什么都重要法律问题:如果你的客户想抢你,他们可能不是客户你应该尽量保持......最重要的事情可能是与你的客户签订一个稳固的合同,它定义了他们可以做什么,不能做什么;总会有人试图绕过你可以设置的任何“保护” - 而且他们最有可能会成功......

如果你想进入这种业务,你必须得到一个伟大的EULA;这比技术业务更合法,而且你肯定需要一些工作涉及法律事务的人的帮助。
尽管如此,从您正在使用的应用程序/网站上通过EULA可以给你一些指针。


一点题外话:关于“给家里打电话”的想法:确保,如果你的“家”网站/应用程序已关闭(这会发生,一天或其他),它不带关闭已部署应用程序的所有网站 - 我很确定你的客户不会喜欢这个^^

另外:确保你的软件“回家”每隔一段时间在EULA /文档中的某处说明:如果您的客户自己发现您的应用程序执行的网络请求不是他们的意愿,那么它会对您的PR造成不利影响。

和:我见过(多次)部署在配置,使他们不能做请求到公司的网络外(他们说:“安全原因”或类似的东西)服务器应用 - - 在这种情况下你可以做的不多,我想...
另一种方法不是分发应用程序,而是提供服务:不要销售应用程序本身,而是托管它,然后出售服务 - 这是许多公司做的(例如:google,带有Gmail或谷歌文档; bur有很多其他例子),如果服务很好,它可以很好地工作。

我要补充,这给你的更新能力更强,更快地纠正问题,insatnce,或者只是添加新的functionnalities ...你可以选择谁可以使用该应用程序;-)

Thie控制这个想法最大的问题是,你的应用程序必须知道(几乎)没有停机时间:你必须找到一个很好的托管服务,创建备份,被动,能够快速解决问题......实际上也不是一件容易的事情!

+0

感谢您的意见 - 我与那些会购买我的脚本的人的关系不像提供者 - 客户端类型,我可以要求签订合同,我只是计划将剧本出售给任何数量的个人,就像任何其他项目一样。 我并不太在意有关我的代码的法律问题 - 如果有人想盗用我的代码,我无法阻止他们。我只是想阻止普通客户试图干涉认证系统。 – 2009-08-31 21:30:45

+0

@ Andrew:好的;如果你明白你不能阻止**他们做错事,但只会让他们放慢脚步/让事情变得更难,那真是一件好事。 – 2009-08-31 21:38:09

0

为什么不提供托管解决方案?这是大多数创业公司现在提供的。这也意味着你可以从升级中解脱出来。