2009-12-01 37 views
3

我有一个产品我卖。用户购买许可证密钥并将其输入到配置中以启用该产品。许可证服务器/销售软件的工作流程

我的第一个想法是..

产品坪许可证服务器瓦特/启动许可证密钥,如果服务器返回未授权(许可证过期,失效等)失败。但是,如果许可证服务器关闭,该怎么办?

另一个想法是只检查一次许可证,或者每隔30天,或每次输入(应用程序重新安装等)。

有没有更安全的方法(至少对脚本小子有一些体面的保护)呢?我从来没有销售软件,但我知道反向工程/修改软件是多么容易,以避免需要许可证。而使事情复杂化的是PHP。

+0

你使用任何代码混淆?如果不是,用户只能重新编码一些东西,并总是访问? – Galen 2009-12-01 19:45:14

+1

@Galen - 有了一个体面的调试器,即使是模糊的代码也不会在寻找手机的代码时忽略它。 – tloach 2009-12-01 19:50:32

回答

7

对于新产品,答案总是:

不要担心版权保护。除非人们正在积极地盗用您的产品,否则没有理由添加“手机之家”功能。

大公司往往会因为拥有适当的许可证而偏执,所以他们会为您支付许可证。大多数小公司都是道德的,任何许可证问题都可能是疏忽。现在你应该更加担心你的名字出来,让人们熟悉你的产品。有人在家里使用你的产品,谁从来没有支付过许可证,这对你来说是件好事。让人们使用你的代码,做到这一点,这样企业就很难改变别的东西,然后担心他们没有免费使用它。如果你做到这一点,这是一个版本3的问题。

0

检出Zend Guard,它来自PHP的创建者,它允许您执行代码混淆和授权。

0

如何使用非对称密钥在服务器上创建包含到期日期和数字签名的文件。在安装基础上,检查文件中的日期和签名。签名可以通过只有公钥检查。这个问题当然是,如果有人用自己的密钥辞职并替换公钥,那么他们可以让你的产品永远工作。但我不知道脚本小孩是否可以做到这一点。

0

有一些工具可以用来保护PHP代码。其中一个叫做ioncube,至少有另外一个,但我不记得它叫什么。

2

您的模型已经尝试过。如果您真的担心有人盗用您的软件,那么您的最佳选择是每次应用程序启动时继续执行ping许可证服务器。是的,您的服务器存在故障,人们无法使用您的应用程序。

对于我的软件,我更喜欢在服务器第一次在我的软件中注册他的密钥时ping服务器,并且如果他们正在为我的软件获取更新,那么我更愿意。这基本上允许我的用户自由使用他们的应用程序,直到他们重新安装或获得那些“真棒”新更新!如果他们没有得到更新,他们可以使用该工具而无需联系互联网。这是我能想出的最好的情况。

无论你做什么,总会有解决方法!黑客只会修改他们的主机文件,将您的许可证服务器指向本地。他们显然会破解或分享你的钥匙。我们生活在这个悲伤的世界里。所以为了让你的用户感兴趣,你必须为他们提供更好的内容来跟踪非法使用。我建议在第一次在后台执行此操作后,用户无论如何都无法获取更新,因此在这个时候,告诉他们您没有重新进行身份验证是毫无意义的。

我想我应该添加一些事情。我不建议您托管自己的许可证服务器。如果可能的话,你应该总是把它外包给一家大公司。一个将有一个保证,他们的服务器将长期运作。此外,请确保始终有多个许可证服务器,这样,如果一个人倒下另一个可以踢入。

我的公司即使发生故障,合同也有义务始终保持该软件许可服务器的活动时间长达10年份。我知道很多公司都会向用户颁发年度许可证,这是让用户更新或面对后果的另一种好方法。

同样,所有的这是一个大量的工作,你应该确保你的工具,真正需要认证的这个量,因为到目前为止还算不上什么是不能被打破。

+1

因此,如果你的公司去了,我不能重新安装我的副本?不,谢谢,不是一家大公司可能会比你的公司活得更久。 – tloach 2009-12-01 20:09:18

+0

对不起,忘了补充。那还有更多。那么即使我的公司出现故障,许可证服务器也由一家大公司托管,而这家公司不会。只要软件在那里,你就会一直很好。你也可以给用户某些受让人。我知道瑞锋拥有某些许可证,最后可以说一年或两年。 – Andrew 2009-12-01 20:14:15