如何在 javascript 中强制执行软件许可证



我正在看一个看起来很酷的javascript框架。我喜欢演示,当我查看页面源代码和附加的.js文件时,我注意到该文件具有"仅测试和评估目的,受版权保护,该软件不是免费的,仅授权给您进行测试"

但是在它下面,整个代码都在那里(因为它是JavaScript)。我可以看到你是否有一个编译的项目,并且有人必须闯入未经授权的系统才能获取源代码,但是你甚至如何开始强制执行这样的纯文本语言?

删除他们的注释后,查找+替换变量的重命名,重新排列函数,甚至不可能知道是否有人将其与网络蜘蛛一起使用。这是失去业务的5秒方式。

我真的很好奇,因为这个产品似乎是他们的整个商业计划,但他们的所有商业秘密都可以在演示中清晰地找到。该国没有为这种事情提供足够的补救措施,因此创作者有责任保护它(我的意思是,如果这毕竟是他们的商业计划)

你对此有什么见解吗?我完全忽略的解决方案?我有点困惑,为什么有人会花这么多精力做一些他们不打算免费的东西,而是免费赠送的。

除了混淆JavaScript代码之外,没有办法"加密"它,所以是的,确实没有办法可靠地复制保护商业JavaScript产品。

它们仍然值得提供,因为

  • 西方国家的大多数企业客户都不敢冒险窃取软件,因为有被抓住并被起诉巨额金钱的风险——如果不是通过代码,那么也许是通过一个心怀不满的实习生吹哨

  • 盗版办公软件不同,盗窃与原始JavaScript一样公开可见和可访问 - 你永远不知道可能存在(或出现)什么技术来使用算法方法查找被盗的JavaScript代码。

  • 真正的业务损失可能并不像人们想象的那么严重:如果无法窃取JavaScript小部件,那么便宜到可以窃取JavaScript小部件的人只会退回到免费小部件。商业 JavaScript 小部件通常不提供任何独特的功能 - 流行的东西往往会很快被克隆 - 它们的卖点通常是它们做几十个开源解决方案做的事情,但非常好,快速,干净,并且有据可查。

总是有混淆工具:http://www.javascriptobfuscator.com/default.aspx

这个问题彻底解决了(双关语)混淆做法的利弊

我想你不能强制执行许可证。
也许他们依赖于计划使用其产品的公司的诚实......

毕竟,您有一些具有双重许可证的开源项目:GPL用于免费/开放项目,其他商业项目(iText,例如IIRC)。同样的理由也适用于这些项目。

此外,您可以公开该软件的残缺版本。当然,如果您发现有人使用它并付费拥有完整版本的网站,也很容易窃取它。

通常,像公司销售的大多数开源软件一样,他们依靠围绕软件的服务来赚钱:您购买他们的软件,获得高级支持,例如快速修复和更新,自定义等。

这是网络作为一种开放技术之间的冲突的结果,其中所有客户端数据都可供任何人查看,与企业和暴利个人的专有和货币利益相冲突,结果是试图混淆。

所有的混淆最终都是通过晦涩的安全措施,所以重要的是要重申它是否在网络上,有人可以把它分开,只是取决于他们是否可以被打扰。 您的软件越有价值,就越有可能如此。

许多企业和个人似乎担心他们的软件会被盗,这通常是被误导的,因为他们经常严重高估他们软件的独特性,不幸的是,大多数时候这并不是一片特殊的雪花。

保护Javascript的唯一方法是通过混淆,有很多在线工具可以做到这一点,其中最好的工具之一是Google的闭包编译器。 混淆在某种程度上可以从代码中删除语义,例如有用的变量名称,而闭包编译器之类的一些实际上可以更改代码的逻辑。 但是,代码仍然是代码,它仍然是合乎逻辑的,有人可以弄清楚它的作用。

  1. JavaScript 中没有"编译项目"这样的东西。
  2. 您不必"闯入未经授权的系统以获取源代码"。 一旦你的页面加载完毕,你就可以访问页面正在使用的每一点JavaScript。
  3. 版权提供微不足道的金额的保护。 如果你找到一件作品的 JavaScript 在网络上是兴趣,你完全自由遍历它并在您的中重写它自己的风格。 如果您只复制和粘贴受版权保护的代码,然后您可以有一些潜在的责任,但这不太可能。
  4. 唯一真实的 保护是通过专利进行的,但 没有保护就没有保护 诉讼。

最新更新