2

你有这方面的策略吗?如果我将网络系统卖给客户,并且按照法律协议,客户不允许将其卖给其他人,我怎么能确定他无论如何都不会这样做?

我的第一个想法是某种必须在根目录中的密钥,并且该文件仅对该特定域有效。

其他想法?

更新 1 我同意这主要是一个法律问题。但事实是:我有一个客户从我这里购买了这个系统,然后再卖给其他人。他希望这个系统能够正常运行,这样他就可以轻松获利。打包和销售 Web 服务器的能力是规范的一部分。

UPDATE 2 另一种观点是这样的。在那种情况下,很难证明有多少转售的软件来自我原来的系统。

更新 3 混淆对我来说不是一个选择,真的很讨厌它。

4

8 回答 8

16

有些人使用Zend Guard之类的混淆器,但老实说,我认为此类问题的技术解决方案就像 DRM 用于音频和视频内容一样注定失败。从根本上说,你给他们的东西是为了工作,所以让它以你不想要的方式工作只是一个技术问题。

您在这里的追索权是(恕我直言)合法而非技术性的。您与客户签订了一份合同,其中列出了他们能做什么和不能做什么。你有一位优秀的律师起草该合同。如果他们不遵守它,那么您几乎必须将他们告上法庭。

不要指望任何形式的混淆或复制保护作为任何形式的保证。

这对于脚本语言来说尤其是一个问题,因为(尽管有 Zend),它们基本上是纯文本分发方法。Java 和 .Net 以及其他字节码编译语言有更多的保护,但它们也可以被反汇编成中间代码(但混淆在这里更有用)。真正编译的语言(例如 c、C++)具有最大的保护,因为将 50 meg 的二进制文件反汇编成汇编代码通常没有多大用处。

即便如此,也没有任何保证。如果您对此不满意,那么您需要仔细选择您的客户,忍受潜在的违约行为(以及可能迫使您追求的可能执行)或寻找另一份工作。

于 2009-03-18T12:35:16.567 回答
4

我认为唯一可以确定的方法是将您的产品作为托管解决方案提供,这样客户就永远无法访问代码。如果您带着这个目标来构建它,您仍然可以拥有经销商并让他们为系统蒙皮,使其看起来像他们自己的产品。

这在我工作的地方效果很好,理论上客户可以许可代码在他们自己的基础设施上运行,但它的定价水平只有大公司愿意支付,而且大公司总体上更关心法律细节所以不太可能只是跑掉你的工作。

如果价格合适,人们很乐意使用托管解决方案,并且它可以为每个人带来好处。客户不必担心设置所有内容,他们也可以安全地知道,如果某些东西确实需要调整,我们(开发人员)会在那里做。

于 2009-03-18T13:33:24.447 回答
3

这是一个社会问题,而不是技术问题。您有版权法;不再需要了。(任何和所有的技术解决方案都相当于 DRM,这本质上是无效的。)

关于你的更新:所以基本上你成为你这个客户的 DRM 供应商。那么:客户是否了解 DRM 无效?在浪费时间实施之前尝试教育他们。
如果客户仍然坚持,我会仔细研究当前 DRM 供应商在做什么。例如,大量的挥手,一些混淆,以及,呃......我不知道......他们还能做什么?无论哪种方式,您都可以确定您实施的任何解决方案将在不到您实施它的时间的 10% 内被撤消 - 所以花尽可能短的时间来解决这个问题。(在它被编辑之前,你写了“它在规范中”关于“确保系统没有出售”:这可能意味着你当然),并且需要您花费无限的时间来构建接近的东西...)

您可能会调查让应用程序在首次运行时联系某个中央注册表(使用嵌入式指纹,每次销售都不同,因此您知道谁传递了他们的代码)。这样,您的客户就可以找到应用程序正在运行的位置,并有机会联系未经许可使用它的人。(有可能将他们变成新的付费客户。)也许让中央存储库能够发回终止信号?但这真的很可怕,而且责任问题会很大。尽可能避免。

于 2009-03-18T12:33:20.393 回答
2

以我的经验,混淆来源比它的价值更麻烦,除非你试图保守一些复杂的算法秘密。

我建议执行以下操作:

  1. 确保您和您的客户以及您的律师都理解并同意您的合同。
  2. 在每个源文件中插入简短的版权声明作为注释。
  3. 将版权声明作为 HTML 注释插入生成的网页(通过页面模板或 php 代码),因此“查看源代码”将证明您的代码在未经许可的应用程序中。

如果您真的很担心,并且这不是一个仅限 Intranet 的应用程序,您可以扩展 (3) 并将唯一的隐藏文本插入到 Google 可以看到但用户看不到的页面中。

这些都不会阻止一个坚定的小偷,但将有助于阻止和发现“意外”盗窃。

于 2009-03-18T13:16:43.410 回答
1

禁止转售软件的正确方法是通过法律限制,而不是技术限制。让您的客户签署一份他们同意不转售的合同。

技术预防措施普遍使产品变得更糟,在技术意义上也是如此,这降低了对客户的价值。技术保护越强,滋扰越大。

例如,假设客户合法地想要更改其域名。他们应该购买新副本吗?我想不是。如果您告诉他们如何更改密钥文件以匹配他们的新域,他们就可以使用该信息使他们能够转售。但是,无论他们想出什么技术技巧,法律保护都适用。

于 2009-03-18T12:33:31.407 回答
1

但一个问题是,当您不害怕客户转售您所做的事情时,开箱即用,律师可以跟踪。问题可能是客户正在重构它。我的意思是花我很多小时的工作,改变一些东西,把它称为他的……以更便宜的价格卖掉它,赢得生意……

这就是为什么我正在寻找技术解决方案来保护我的工作。它还可能帮助我将来自律师的发票保持在最低限度,这对于让他/她保护我的工作来说是一个很大的变化。

于 2009-03-18T12:48:26.833 回答
1

我怎么能确定他不会那样做呢?

你无法阻止它......期间。如果任何人有消息来源,就没有办法阻止他们……如果他们这样做了,你只能诉诸惩罚他们。

也许您的合同,除了禁止他们转售之外,还有与他们转售相关的价格,即您通常支付的价格的 10 倍或 20 倍,加上法律费用(如果需要让他们付款)......这样,如果他们无论如何都选择这样做,你有一张漂亮的纸,上面有他们的签名,上面已经有一个很好的脂肪预先商定的价格,如果他们继续出售它,他们需要支付。

于 2009-03-18T12:54:40.047 回答
0

我还没有看到提到 Ioncube,所以想知道是否有理由不使用它?

是的,设置需要花钱,是的,它需要安装服务器端库(我敢说现在大多数主机都已经在运行),但它确实允许域限制以及基于时间的限制。

也许您甚至可以将它与 PHPAudit 结合使用?

于 2009-03-18T14:39:28.767 回答