我们正在开发一个由客户选择的任何数据库支持的Java EE应用程序。

我们将根据用户许可证价格向客户销售产品。我如何确定应用程序是否按照我们的条件使用,即不易破解?有没有可用的教程?

有帮助吗?

解决方案

Bill Karwin的回答是最有用的评论中提到的问题的答案。假设你将继续进行“保护”。计划,尽量做到最低限度。任何其他事情往往会极大地挫败用户,并导致较低的重复业务和/或增加了破解您令人沮丧的系统的愿望。

从您的问题来看,很难判断每个用户是否会安装该应用程序。如果是这样,您可能只需要一个他们必须以某种方式联系您的许可证代码。如果它是客户端 - 服务器的东西,那么你的选择更加有限;事实上,我想不出一个我曾经设计过的单一解决方案,或者在实践中遇到的并非大量令人沮丧的解决方案。您也可以在这里执行许可证代码解决方案,除非许可证代码以某种方式携带有效负载,指示他们支付的用户数量,然后禁止创建/使用超过该数量的用户。不过,那时候,你真的走的是我提到的挫折线。

其他提示

如果你可以混淆 - 这是一个开始的方法。但是如果使用控制框架的反转(例如spring)可能会很痛苦。我听说也有可能混淆春天的背景,但从未尝试过。另外(只是猜测)可能会有一些惊喜与反射,动态代理等。关于许可,我建议使用 TrueLicense 。它具有非常灵活的处理保护的各个方面的手段以及开箱即用的免费试用期。效果很好,并且有很好的文档。

客户是否支付此应用程序的支持?如果是这样,那么支持比应用程序本身的许可更有利。如果是这样,您可以考虑锁定应用程序,而是选择仅提供对软件的真实副本的支持(通过校验和等证明的未经修改的副本)。许多获得此软件许可的企业更倾向于避免任何修改(即使他们想要实际做到这一点的可能性很小),以免损害他们的支持。

仅供参考:这就是Oracle倾向于使用其电子商务套件进行操作的方式。您几乎可以修改任何所需的组件。祝你得到支持,祝你好运!

了解Atlassian如何销售他们的产品。我相信这是一种非常有效的方法,也可能适合你。注意:订阅更新应该有附加值!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top