代码之家  ›  专栏  ›  技术社区  ›  Josh Hunt bstahlhood

我如何包装和销售django应用程序?

  •  38
  • Josh Hunt bstahlhood  · 技术社区  · 17 年前

    目前我正在为我的客户托管我自己开发的django应用程序,但现在我开始考虑把它卖给别人,让他们自己托管。

    我的问题是:我如何包装和销售一个django应用程序,同时保护其代码免受盗版或盗窃?分发一堆.py文件听上去不是个好主意,因为我把它卖给的人也可以复制它们,然后把它们传下去。

    我认为就这个问题而言,假设每个购买这个的人都在运行相同的(灯)设置是安全的。

    7 回复  |  直到 10 年前
        1
  •  55
  •   dbr    17 年前

    不要试图混淆或加密代码-它永远不会起作用。

    我建议将django应用程序作为一种服务来销售——要么为他们托管它,要么卖给他们代码。 和支持 . 写一份禁止他们重新分配的合同。

    也就是说,如果您决定以某种方式混淆代码,那么您可以将python应用程序完全分发为.pyc(python编译的字节代码)。这就是PY2APP的工作原理。

    它仍然可以重新分配, 但是 编辑这些文件是非常困难的,所以你可以添加一些基本的许可证内容,而不是被少数人阻止。 # 美国。

    如我所说,我认为你不会通过加密或混淆等方式成功地反盗版。根据您的客户的不同,一个简单的合同和一些真正的基本检查可能比一些复杂的解密系统(以及使用您的应用程序的经验)要长得多。 更好的 而不是 希望不会更糟 )

        2
  •  11
  •   Serafina Brocious    17 年前

    我会这样做:

    1. 加密所有代码
    2. 编写一个安装程序,该安装程序使用机器的主机名和许可证文件联系服务器并获取解密密钥,然后解密代码并将其编译为python字节码。
    3. 添加(在安装程序中)一个模块,该模块在导入时检查机器的主机名和许可证文件,如果不匹配,则会死亡。

    这样,用户只需在主机名更改时和第一次安装时联系服务器,但您会得到一个小的安全层。您可以将主机名更改为更复杂的内容,但实际上没有必要——任何想要盗版的人都可以这样做,但是这样一个简单的机制可以让诚实的人保持诚实。

        3
  •  11
  •   Mike    17 年前

    你可以将整个程序打包成一个Amazon机器实例(AMI),然后让他们在上面运行你的应用程序。 Amazon EC2 . 这个解决方案的好处是亚马逊会 take care of billing for you 因为你在分发整个机器的图像,你可以确定你的所有客户都在使用相同的灯组。AMI是一个加密的机器映像,可以根据需要进行配置。

    您可以让亚马逊向客户收取一次性费用、基于使用的费用或每月费用。

    当然,这个解决方案要求你的客户将他们的应用程序托管在亚马逊,并支付适当的费用。

        4
  •  10
  •   James Bennett    17 年前

    “加密”python源代码(或字节码,或任何使用它的语言的真正字节码,而不仅仅是python)就像一些人在网页上放置的一些小javascript,试图禁用鼠标右键,声明“现在你不能窃取我的图像!”

    解决方法是微不足道的,不会阻止一个坚定的人。

    如果你真的很认真地想销售一款python软件,你需要认真对待。支付律师起草许可证/合同条款,让人们在购买时同意,然后让他们拥有实际的软件。这意味着,如果人们违反了许可证/合同条款,你就必须将他们告上法庭,但不管怎样,你都必须这样做(例如,如果有人破坏了你的“加密”并开始分发你的软件),并且已经在纸上写下了正确形式的法律词汇,并附上他们的签名,对你的业务来说会好得多。从长远来看。

    如果你真的 那个 不过,偏执于人们“窃取”您的软件,只需坚持使用托管模型,而不给他们访问服务器的权限。许多成功的企业都是以这种模式为基础的。

        5
  •  7
  •   Jeremy Cantrell    17 年前

    您将永远无法阻止真正需要源代码的人访问源代码。最好现在就着手解决这个问题,以后再省去你的头痛。

        6
  •  3
  •   csexton    17 年前

    你可能想考虑的一件事是福格森的所作所为。只需包含一个为目标平台编译的小二进制(可能是C程序)并包含验证许可证的代码。

    这样,你就可以让诚实的人保持诚实,同时尽量减少你的头痛。

        7
  •  3
  •   John Samuel Anderson    15 年前

    我可以作为朋友坦率地说吗?除非你的应用真的很棒,否则你可能不会有很多买家。为什么要把时间浪费在律师身上,混为一谈,发执照等等?您将通过开放源代码和维护代码来获得更好的声誉。

    Django来自许可(和模糊)领域的开源端。当然,麻省理工学院的许可证比GPL更为常见;不过,它们与任何类似微软的EULA的东西都相距甚远。很多Djangophiles都会拒绝使用封闭源代码,因为这正是微软所做的。

    此外,人们会更加信任您的代码,因为他们能够阅读并验证您的代码中是否包含恶意代码。记住,“模糊”意味着“隐藏”;谁会真正知道你隐藏了什么?

    当然,要将开放源码货币化并非易事。但是你可以为那些感谢你所有伟大工作的人提供你的服务,甚至在pledgie.com上发布一个活动。