【问题标题】:How to create a secure licensed Java EE application? [closed]如何创建安全的许可 Java EE 应用程序? [关闭]
【发布时间】:2010-10-22 12:50:44
【问题描述】:

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

我们将根据每个用户的许可价格向客户销售。我如何确保根据我们的条件使用该应用程序,即不容易被破解?有教程吗?

【问题讨论】:

  • 请参阅stackoverflow.com/questions/475216/…。不同的语言,但同样被误导的方法。
  • 我阅读了该问题的答案,但这不是我想要的。我知道每件事都是可以破解的,但至少我们努力让它变得困难。
  • 此请求是否来自管理层?

标签: java jakarta-ee licensing security


【解决方案1】:

Bill Karwin's answer 是 cmets 中提到的问题中最有用的答案。假设您将继续实施“保护”计划,请尽量做到最低限度。其他任何事情都会极大地让用户感到沮丧,并导致重复业务减少和/或增加破解令人沮丧的系统的欲望。

根据您的问题,很难判断每个用户是否会安装该应用程序。如果是这样,您可能只需要一个许可证代码,他们必须以某种方式与您联系才能获得。如果它是客户端-服务器的事情,那么您的选择就会受到更多限制;事实上,我想不出一个我曾经在脑海中设计过或在实践中遇到过大量令人沮丧的解决方案。你也可以在这里做一个许可证代码解决方案,除了许可证代码会以某种方式携带一个有效负载,表明他们支付的用户数量,然后禁止创建/使用超过该数量的用户。不过,到那时,你真的是在走我提到的那条挫败线。

【讨论】:

  • 这是一个客户端-服务器应用程序。用户使用浏览器作为客户端。服务器将安装在客户端网络中。每个用户都将拥有一个由他们的管理员创建的帐户,但最多可达到他们购买许可证的数量。如果他们达到该最大值并想要更多许可证,他们可以简单地购买它并在他们的系统中更新许可证,然后离开。
  • 在这种情况下,我会说使用许可证密钥来指示截止是要走的路。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    客户是否为此应用程序的支持付费?如果是这样,那么支持有可能比应用程序本身的许可带来更大的回报。如果是这样,您可以考虑锁定应用程序,而是选择只为软件的真实副本(通过校验和等证明的未修改副本)提供支持。许多获得此软件许可的企业更倾向于避免任何修改(即使他们真正想要这样做的机会可能很小),以免危及他们的支持。

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2013-03-19
        • 1970-01-01
        • 2011-02-07
        • 1970-01-01
        • 2013-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多