为ColdFusion应用程序创建许可系统

时间:2014-07-21 15:01:55

标签: coldfusion coldfusion-10 coldfusion-11

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

这提出了以下问题:

  1. 在多个网站上管理应用程序(例如升级,更新)
  2. 许可应用程序,使其仅在客户付款时才有效
  3. 防止客户端访问源代码并弄乱应用程序或盗用它
  4. 我要解决的第一个问题是如何为每个客户创建一个应用程序每次使用时检查的许可文件,然后允许客户进入。请记住,整个应用程序由客户托管,所以我不能有一个检查许可的中央系统。我需要一些类似于旧的桌面应用程序在您输入序列号的地方工作的方式并且它授权产品。

    我最初的想法是:

    1. 预加载客户端具有散列/加密序列号的数据库表
    2. 有一些其他表格将序列号映射到到期日期
    3. 我的网络应用程序根据数据库表检查数据库表的序列有效性,然后决定在串行持续的任何时间段内工作
    4. 唯一的问题是......如何检查“序列有效性”。也就是说,我的网络应用程序将如何知道该客户正在使用哪个序列,并将其永久保留到可能需要12个月的到期日期。

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

1 个答案:

答案 0 :(得分:7)

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

如果他们要自己托管,您可以向他们发送他们在服务器上部署的已编译JAR文件。这样,他们没有源CFML,只有编译的类。或者您将源作为加密的CFML文件提供给他们。是的,有办法解密这些文件,但他们现在可能知道了。如果他们希望能够自己更新代码,只需向他们出售未加密的源代码,价格另计。只要确保许可证说他们无法转售代码,yadda,yadda,yadda。这些都避免了序列号。

  

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

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

  

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

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

  

但是,但......顾客永远是对的......? - 第一卷

不,顾客有时过去生活,害怕现在。 Gartner recommends that companies purchase Software as a Service solutions, rather than building said solutions themselves.您应该向他们展示他们将花多少钱来提供服务器,人员,时间等,以便在自己的服务器上支持您的软件,以及您按预期管理它的成本。他们的团队中谁会在需要时修补应用程序?他们是否有工作人员可以找出为什么在半夜出现问题?他们是否会支付额外的费用来支持硬件上的副本?

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