V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
fay
V2EX  ›  问与答

请教大家如何不暴露源代码的情况下,而将网站出售并部署到对方的服务器上?

  •  
  •   fay · 2014-05-23 09:53:41 +08:00 · 6901 次点击
    这是一个创建于 3830 天前的主题,其中的信息可能已经有所发展或是发生改变。
    公司要将一个Iaas平台以license的形式授权出售给其他公司,是基于Python和Django的,问下V友是否可以不把源码给对方,而做到网站可以运行,pyc可以做到吗?
    21 条回复    2014-05-23 23:08:19 +08:00
    thinkif
        1
    thinkif  
       2014-05-23 10:38:13 +08:00   ❤️ 1
    比如, 核心算法用C之类的语言写
    song940
        2
    song940  
       2014-05-23 10:38:16 +08:00   ❤️ 3
    打包到虚拟机里 . 然后提供接口, 让他绑定到 Nginx 上 .
    fay
        3
    fay  
    OP
       2014-05-23 10:43:52 +08:00
    @thinkif 核心的组件的确是用C实现的,只是领导不懂技术,签合同时写明所有代码都不是给源码,所以网站python实现的部分代码还是没办法
    fay
        4
    fay  
    OP
       2014-05-23 10:47:33 +08:00
    @song940 挺好的思路,不过所有的硬件设备都是对方公司提供的,而且使用场景应该是局域网内部使用的
    song940
        5
    song940  
       2014-05-23 11:00:56 +08:00   ❤️ 2
    @fay 不冲突啊 , 在他们的服务器上安装 vagrant , 然后你把项目打包成 box 文件 , 到服务器上 vagrant add box app.box , 然后创建一个低权限用户 , 只能修改指定目录下的配置文件 . 取消该用户的密码 . 给你们的客户生成个 Key , 作为 license , 登陆这个虚拟机 .

    剩下的 , 自己想吧 ...
    fay
        6
    fay  
    OP
       2014-05-23 11:07:57 +08:00
    @song940 恩,貌似可行,我再细化下解决方案,非常感谢
    ericls
        7
    ericls  
       2014-05-23 11:16:41 +08:00 via Android
    直接pyc文件
    fay
        8
    fay  
    OP
       2014-05-23 11:29:36 +08:00
    @ericls 恩,的确是可以,不过@song940 的方法比pyc的更有优势,因为方便我们的维护和调试,也谢谢你
    arcas
        9
    arcas  
       2014-05-23 11:32:11 +08:00
    可以pyc + @song940 的方法.
    shiny
        10
    shiny  
       2014-05-23 11:35:23 +08:00
    @song940 估计文件系统还得加密? vagrant 实际上是个 virtualbox 虚拟机,可以重置 root 密码或者复制出文件来。
    Shared
        11
    Shared  
       2014-05-23 11:43:25 +08:00
    你还可以考虑用 Cython
    Tink
        12
    Tink  
       2014-05-23 11:46:43 +08:00 via iPhone
    @song940 这个方法挺棒的,而且还是多语言通用
    wtbhk
        13
    wtbhk  
       2014-05-23 12:08:55 +08:00
    咦,python不是可以编译成二进制吗
    loading
        14
    loading  
       2014-05-23 12:29:54 +08:00 via Android   ❤️ 1
    @song940 能防止本地单用户模式登陆?root权限很容易取得吧!

    虚拟机只有 pyc 是必须的
    glasslion
        15
    glasslion  
       2014-05-23 12:38:13 +08:00
    @ericls 给pyc还不如给源代码
    song940
        16
    song940  
       2014-05-23 12:51:10 +08:00   ❤️ 1
    @shiny 看来文件系统加密是有必要的 .
    @loading `本地单用户模式登陆` 问题也是可以解决的.
    love
        17
    love  
       2014-05-23 13:27:31 +08:00
    pyc文件反编译出来和源文件真的是没有区别,我试过。

    听说用pypy可以真正编译,那个应该就不会有问题了。
    bsbgong
        18
    bsbgong  
       2014-05-23 13:36:08 +08:00
    好问题,学习了
    收藏
    loading
        19
    loading  
       2014-05-23 14:51:00 +08:00
    @song940 期待分享该方面经验!
    dorentus
        20
    dorentus  
       2014-05-23 16:12:40 +08:00
    如果我没记错的话,Github Enterprise 就是用虚拟机镜像(文件系统加密)的形式分发的~
    Comdex
        21
    Comdex  
       2014-05-23 23:08:19 +08:00 via Android
    对于py我想说用golang就不会有这种问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2023 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 00:25 · PVG 08:25 · LAX 16:25 · JFK 19:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.