目前,我正在为我的客户开发一款Django应用程序,但我现在开始考虑将其出售给客户,让他们自己托管.

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

我认为为了解决这个问题,可以安全地假设每个购买此产品的人都会运行相同的(LAMP)设置.

推荐答案

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

我建议将Django应用程序"作为服务"出售--要么为他们托管它,要么向他们出售代码and support.写一份合同,禁止他们重新分配它.

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

它仍然可以重新分发,but编辑这些文件将非常困难,所以你可以添加一些基本的授权内容,而不是让它被几个#个..

正如我所说,我认为你不会通过加密或模糊处理等方式成功地打击盗版..取决于你的客户,一份简单的合同,也许一些真正基本的判断会比一些复杂的解密系统走得更远(使用应用程序的体验是better,而不是hopefully not any worse)

Django相关问答推荐

如何在Django中更改模型字段名称?

对象Django API中的对象

如何在Django REST框架中使用FactoryBoy创建不同的项目

如何将Django项目连接到容器化的PostgreSQL数据库?

Django:如何 Select 没有其他项目引用的项目?

Django rest框架覆盖ViewSet中的page_size

Django ORM 和锁定表

Django基于类的视图上的success_url的反向抱怨循环导入

Django:无法从另一个应用程序导入模型

如何使用自定义 AdminSite 类?

如何迭代模板中 SelectField 的选项?

将 XML 从 URL 解析为 python 对象

如何在 Django 中配置 X-Frame-Options 以允许 iframe 嵌入一个视图?

Django:在管理界面中显示图像

使用 Gunicorn 运行 Django - 最佳实践

从表单获取模型实例而不保存

Django - 每 x 秒运行一个函数

使用 get_object_or_404 获取数据库值

Django - 一起为 2 个或更多字段创建唯一的数据库约束

引发 404 并继续 URL 链