推荐关注
› Meteor
› JSLint - a JavaScript code quality tool
› jsFiddle
› D3.js
› WebStorm
推荐书目
› JavaScript 权威指南第 5 版
› Closure: The Definitive Guide
idoldog

[Javascript] Javascript 源码保护的一个办法

  •  
  •   idoldog · Jan 22, 2016 · 6221 views
    This topic created in 3938 days ago, the information mentioned may be changed or developed.
    Function.prototype.toString = function () { return "[native code]" }
    

    这样当用户调用 functionA.toString() 的时候就看不到源码了。

    各位高手帮忙 review 下,看看有没有漏洞。

    19 replies  •  2016-01-27 19:31:43 +08:00
    idoldog
    idoldog
    OP
    Jan 22, 2016
    1
    详细方法可以参考这个贴子:

    http://www.v2ex.com/t/151771
    FrankFang128
    FrankFang128
    Jan 22, 2016 via Android
    2
    无法保护
    aivier
    aivier
    Jan 22, 2016
    3
    能执行,就能解密...
    finian
    finian
    Jan 22, 2016
    4
    想多了,下发到客户端的 JavaScript 代码防不了破解,只能增加破解成本
    lxrmido
    lxrmido
    Jan 22, 2016
    5
    自欺欺人的感觉……
    morethansean
    morethansean
    Jan 22, 2016 via iPhone
    6
    ...难道别人看你代码是通过 toString ?
    tabris17
    tabris17
    Jan 22, 2016
    7
    这不自欺欺人么
    Hiufan
    Hiufan
    Jan 22, 2016❤️1
    8
    前端何苦难为前端...
    zhuangzhuang1988
    zhuangzhuang1988
    Jan 22, 2016
    9
    用 scala.js, 或者 clojurescript 试试看. 编译后的代码太好看了
    luoway
    luoway
    Jan 22, 2016
    10
    @Hiufan 貌似后端转前端的才会不想代码被看到。
    曾问个同项目的后端同学看看他的后端代码,好交流一下怎么前后端协作分工,他绕着弯说不能给。

    前端加密目前都只是增加解密成本,做到混淆精简这一步就足够阻止无心人阅读了,但防不了有心人解密。
    @idoldog 这帖 letv 那个代码自带解密方法,纯属吓唬非前端。
    akagi
    akagi
    Jan 22, 2016
    11
    其实没人想过做个类似 VProtect 那样的虚拟机壳么?
    akagi
    akagi
    Jan 22, 2016
    12
    @akagi VMProtect, 另外一楼的链接中也有人提到了。
    dqh3000
    dqh3000
    Jan 22, 2016
    13
    其实我一直在考虑用 emscripten ……

    然后用 C++写前端……
    fuyufjh
    fuyufjh
    Jan 22, 2016
    14
    @morethansean 同感。。。
    onceyoung
    onceyoung
    Jan 22, 2016
    15
    别的思路我不知道,不过把那你们的代码写的自己都看不懂,就相当于加密了...
    mcfog
    mcfog
    Jan 22, 2016❤️1
    17
    完全没用

    就连楼主认为的“防止在控制台打印函数源码”的用都没有

    xiongxin8802
    xiongxin8802
    Jan 22, 2016
    18
    dart2js
    idoldog
    idoldog
    OP
    Jan 27, 2016
    19
    悲剧啊~~~

    前端代码怎么保护起来?特别是现在像基于 JS 的客户端开发逐渐增多的情况下。

    大家可以看一下『蜻蜓 FM 』作弊的事情,就知道为什么要加密代码了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1306 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 21:02 · PVG 05:02 · LAX 13:02 · JFK 16:02
    ♥ Do have faith in what you're doing.