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

如何保护网站源代码?

  •  
  •   tang8888 · 2014-10-15 17:51:59 +08:00 · 4961 次点击
    这是一个创建于 3689 天前的主题,其中的信息可能已经有所发展或是发生改变。
    jsp的源代码可反编译出来,C#的也可以,PHP等各种动态语言的更是明文直接可读。如果网站被黑客攻入,源代码文件被Down走,一句话,发布在主机上的项目,怎么保证源代码的安全性。
    33 条回复    2014-10-16 10:21:56 +08:00
    hjc4869
        1
    hjc4869  
       2014-10-15 18:18:17 +08:00
    真担心到这个程度啊。。
    代码好好混淆即可……前端后端都要好好混淆。。
    typcn
        2
    typcn  
       2014-10-15 18:22:27 +08:00
    。。。又不是卖给别人。。。
    bydmm
        3
    bydmm  
       2014-10-15 18:24:30 +08:00
    我出个作死的主意, 把网站关键核心代码封装成C++mod, 然后就算被人把网站脱下来,也无法运行。
    lyragosa
        4
    lyragosa  
       2014-10-15 18:24:40 +08:00
    我也不知道。

    所以没管,
    em70
        5
    em70  
       2014-10-15 18:26:33 +08:00 via Android   ❤️ 1
    为了防小偷,把门堵了,出门爬窗
    scarlex
        6
    scarlex  
       2014-10-15 18:27:42 +08:00
    @hjc4869 一般后端怎么混淆?
    lecher
        7
    lecher  
       2014-10-15 18:29:42 +08:00
    我几个好办法。不靠谱程度依次增加。
    1.别用什么动态脚步语言了,全都是明文可读。改用静态编译的最保险,什么c、c++、go之类的,你把代码build成个可执行文件,他拷回去也没办法处理
    2.动态脚本语言非要用也可以,你就把代码做分布式部署好了,一台服务器一个模块,执行的时候通通用网络通信来传递消息,还可以顺道练习各种请求队列和异步执行的处理,即提高技术水平又增加代码安全性。
    3.要嫌不够安全还有一招,内存加载大法,所有执行的代码,你用个额外的监控程序处理,监控程序从多台远程网络请求代码过来再拼接,然后加载到内存里扔着执行。

    这样总够安全了吧。实在觉得不安全。还有神一般的人肉监控啊,你24小时在服务器上面盯着,一旦发现服务器有其它ip登入,马上执行shutdown命令关机,保证黑客无法攻入。
    tang8888
        8
    tang8888  
    OP
       2014-10-15 18:58:10 +08:00
    关键怕同行得到源码后,立即山寨出一个类似的网站来,这样业务就跑了。
    xdeng
        9
    xdeng  
       2014-10-15 19:00:24 +08:00
    你需要 golang
    coolzjy
        10
    coolzjy  
       2014-10-15 19:04:21 +08:00
    @tang8888 Google 都能被山寨出来,不知道你的是什么伟大项目
    Comdex
        11
    Comdex  
       2014-10-15 19:06:39 +08:00
    用golang不怕
    hjc4869
        12
    hjc4869  
       2014-10-15 19:16:20 +08:00
    @scarlex 如果是.Net(C#)的话工具很多,dotfuscator应该可以(虽说这个比较简单)。。其他的我没搞过实质性的开发所以我也不清楚。
    shiny
        13
    shiny  
       2014-10-15 19:18:19 +08:00
    想起了这个: https://gist.github.com/nikcub/3833406
    但是那又如何……
    webjin
        14
    webjin  
       2014-10-15 19:32:19 +08:00
    @bydmm 求方法文档
    tang8888
        15
    tang8888  
    OP
       2014-10-15 19:34:29 +08:00
    golang太难了,我学不会。学会了也做不出好项目。
    daxingplay
        16
    daxingplay  
       2014-10-15 20:25:06 +08:00   ❤️ 1
    除非有很高深的算法吧,否则一般网站,不用看源码,不也是很快就可以山寨出来了么?
    msg7086
        17
    msg7086  
       2014-10-15 20:38:42 +08:00 via iPhone
    连服务器安全都做不好的公司还担心代码的价值?
    hadoop
        18
    hadoop  
       2014-10-15 20:45:34 +08:00
    代码写差点,就行了
    cdxem713
        19
    cdxem713  
       2014-10-15 20:49:41 +08:00
    1、类似google网页这样做个混淆,应该能防住一些人,不过维护起来应该会很麻烦
    2、把重要功能的实现放在后端
    aszxqw
        20
    aszxqw  
       2014-10-15 20:53:22 +08:00
    @tang8888 居然有人说 golang 难。。。。。。。
    tang8888
        21
    tang8888  
    OP
       2014-10-15 21:06:17 +08:00
    单个页面你也许看下页面外观就能山寨出来。但是整个系统呢,比如wordpress discuz?
    lygmqkl
        22
    lygmqkl  
       2014-10-15 21:10:17 +08:00
    服务器被攻陷了就什么都不要说了。 程序是小,数据是大
    tang8888
        23
    tang8888  
    OP
       2014-10-15 21:23:47 +08:00
    如何防止vps或主机提供商监守自盗,偷我们的系统源码和数据呢。
    linchanx
        24
    linchanx  
       2014-10-15 21:28:42 +08:00
    楼主真心想多了,如果你的站做到了一定的级别,即便代码外泄也不会影响到你的用户数,比如QQ就算它源代码全泄露了会影响它的用户数吗?如果你的网站真的做的很好就算不外泄代码,就像wordpress,discuz,大公司copy还不是分分钟的事情,BAT中随便一家都能copy出一个完整的discuz,只不过没那意义罢了。
    raincious
        25
    raincious  
       2014-10-15 21:33:02 +08:00
    @shiny

    没人想吐槽这个代码写得很糟糕的么?至少看起来很糟糕。怎么不是MVC的……
    belin520
        26
    belin520  
       2014-10-15 21:34:39 +08:00
    混淆式编程
    zkd8907
        27
    zkd8907  
       2014-10-15 21:41:29 +08:00
    .net的话,混淆以后可靠性还是比较高的。
    Tink
        28
    Tink  
       2014-10-15 21:43:23 +08:00 via iPhone
    确实,自己网站做好才是硬道理,不用担心被copy
    wwqgtxx
        29
    wwqgtxx  
       2014-10-15 21:49:30 +08:00 via Android
    @raincious 又不是不用mvc就是很差的网站……只要能写得好,怎么样都行
    lhbc
        30
    lhbc  
       2014-10-15 22:24:38 +08:00 via iPhone
    楼主你真想多了
    这跟“一切准备就绪,就差个程序员”是一样的
    fising
        31
    fising  
       2014-10-15 22:31:43 +08:00
    PHP可以用zend guard加密。
    也可以用编译型语言。

    加密了其实没多大用。
    dndx
        32
    dndx  
       2014-10-15 23:59:04 +08:00 via iPhone
    没用,真正靠谱的方法只有一个,SaaS。
    jacob
        33
    jacob  
       2014-10-16 10:21:56 +08:00 via iPhone
    我感觉过虑了,人家想山寨你是挡不住的。而且,就算山寨还不一定就用你的代码,
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3166 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:30 · PVG 21:30 · LAX 05:30 · JFK 08:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.