0

我正在 ColdFusion 11 中创建一个 Web 应用程序,该应用程序最初是云托管的。然而,一些潜在客户更愿意在他们的场所自行托管它。

这就提出了以下问题:

  1. 管理多个站点上的应用程序(例如升级、更新)
  2. 许可应用程序,使其仅在客户付款时才有效
  3. 防止客户端访问源代码并弄乱应用程序或盗版

我要解决的第一个问题是如何为每个客户创建一个许可证文件,应用程序每次使用它时都会检查它,然后允许客户进入。记住整个应用程序是由客户托管的,所以我不能有一个检查许可的中央系统。我需要一些类似旧桌面应用程序如何在您输入序列号并获得产品许可的情况下工作的东西。

我最初的想法是:

  1. 预加载客户端具有散列/加密序列号的数据库表
  2. 有一些其他表将连续剧映射到到期日期
  3. 我的网络应用程序根据数据库表检查数据库表的序列有效性,然后决定在序列持续的任何时间段内工作

唯一的事情是......它将如何检查“序列有效性”。也就是说,我的 Web 应用程序如何知道该客户正在使用哪个序列,并将其永久保存到可能 12 个月后的到期日。

谁能给我一些指示如何为 ColdFusion Web 应用程序实现这种基于客户端的安全性?

4

1 回答 1

7

从评论中移出,试图提供一个有凝聚力的答案。

如果他们要自己托管,您可以向他们发送一个已编译的 JAR 文件,然后他们将其部署在他们的服务器上。这样,他们就没有源 CFML,只有编译的类。或者您将源作为加密的 CFML 文件提供给他们。是的,有一些方法可以解密这些文件,但他们现在可能知道了。如果他们想要自己更新代码的能力,只需以额外的价格向他们出售未加密的源代码。只要确保许可表明他们不能转售代码,yadda,yadda,yadda。这些都避免了序列号。

@Adrian 该应用程序最初是作为免费试用版提供的,然后只能与某种激活序列一起使用。我不希望他们假装放弃它但仍然继续使用它的情况 -第一卷

然后,您的应用程序将需要一个验证服务来及时检查您的服务器,而不是它们托管的某个本地数据库。该服务可以设置到期日期、更新提醒,并让他们知道(通过管理区域)有需要应用的更新。BlogCFC 做了最后一部分,而且是免费的。如果在一定时间内没有进行验证检查,则应用程序的功能有限或没有。

因此,即使它是现场安装,我也必须通知他们他们的服务器必须在防火墙之外具有有效的 Internet 连接。我不知道他们是否会喜欢这个,因为应用程序将保存他们的客户数据,因此为什么他们中的一些人不想要云。-第一卷

这是21世纪。告诉他们云是否是NASDAQ可接受的解决方案,这对他们来说是可接受的解决方案。

但是,但是……客户永远是对的……?-第一卷

不,客户有时生活在过去,害怕现在。Gartner 建议公司购买软件即服务解决方案,而不是自己构建上述解决方案。您应该向他们展示他们将花费多少来提供服务器、人员、时间等,以便在他们自己的服务器上支持您的软件,以及您按预期管理它的成本。他们团队中的谁将在需要时修补应用程序?他们是否有程序员可以在半夜找出问题的原因?他们是否会支付额外费用让您随叫随到以支持他们硬件上的副本?

向他们展示数字,向他们展示研究结果,您就可以让他们理解并进行销售。否则,销售可能不值得。

于 2014-07-21T21:09:03.387 回答