V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mumuy
V2EX  ›  程序员

前端代码加密,存在图片里

  •  
  •   mumuy ·
    mumuy · 2021-11-03 17:25:30 +08:00 · 4429 次点击
    这是一个创建于 1110 天前的主题,其中的信息可能已经有所发展或是发生改变。

    开发前端的可能会碰到这样的问题,辛辛苦苦开发的功能,一发布就被别人把代码拷走了。网上常见的方法一般是压缩、混淆等等,加密后的代码通常包含 eval ,替换成 console.log 很容易就被破解。可以说前端没有秘密,再多的加密方式就是让对方多折腾而已……

    于是,我也想尝试让别人折腾一下,不愿意轻易交出源代码。将源代码混进图片里面也是一种尝试,你可以在存入时限制脚本运行的域,如果域不符合,就自动跳转掉。这样可以保证对方在没有破解你代码的情况下,直接拷走你的脚本也是无法正常运行的。然后再对加载脚本进行人工的多层加密,让对方难以简单地通过破解加载脚本而破解源代码。

    项目地址: https://github.com/mumuy/imageCode

    演示地址: https://passer-by.com/imageCode/

    32 条回复    2021-11-04 16:50:51 +08:00
    xingguang
        1
    xingguang  
       2021-11-03 17:30:54 +08:00
    开放性是 JS 成功的理由,也是前端注定无法开发特别保密的东西的原因
    WildCat
        2
    WildCat  
       2021-11-03 17:33:26 +08:00
    hnbcinfo
        3
    hnbcinfo  
       2021-11-03 17:34:35 +08:00   ❤️ 1
    把核心代码写到 wasm 里,编译成二进制,看谁再去偷源码!
    fkdog
        4
    fkdog  
       2021-11-03 17:41:39 +08:00   ❤️ 5
    你的路子走错了。
    前端界面上所能实现的东西大多数都是属于可替代性非常强的,根本没必要把自己的代码守的死死的。
    别人真的想 copy 完全可以直接重写一套。
    pengtdyd
        5
    pengtdyd  
       2021-11-03 17:43:28 +08:00
    现在是移动端的天下了,死守页面代码是徒劳
    hahastudio
        6
    hahastudio  
       2021-11-03 17:44:03 +08:00
    前端代码加密我只能说是防君子不防小人
    mumuy
        7
    mumuy  
    OP
       2021-11-03 17:47:10 +08:00
    @fkdog 有些人需要啊,也只能防一部分人,增加对方的工作量而已,不至于自己写的东西短期内太多山寨的
    mumuy
        8
    mumuy  
    OP
       2021-11-03 17:50:48 +08:00
    @hahastudio 是的呀,就是让对方成本高,这样等他不耐烦了,自己去开发,不会直接拷你的
    duduaba
        9
    duduaba  
       2021-11-03 20:08:16 +08:00
    前端代码不值钱,一般 css 就算不能复制也能手写出来,js 逻辑一压缩想反解也不是那么容易,这样一来好像就没有加密的必要了。。。
    a62527776a
        10
    a62527776a  
       2021-11-03 21:00:52 +08:00
    如果能把数论那套理论研究研究 还是很有价值的
    ijrou
        11
    ijrou  
       2021-11-03 22:52:17 +08:00   ❤️ 1
    2 楼和 3 楼给出了解决方案;
    2 楼:还可以逆向(很轻松)
    3 楼:除了 wasm ,还可以在此基础上 ofs 混淆 和 vm 虚拟化 二进制代码
    给出第三种解决方案是:vm 虚拟化 js 代码,可以看腾讯网页登陆拖动图片验证的代码,别人反编译的难度分析:
    52pojxxx /thread-1521480-1-1.html
    Kasumi20
        12
    Kasumi20  
       2021-11-03 23:16:49 +08:00
    图片文件夹吧?
    akira
        13
    akira  
       2021-11-04 02:38:23 +08:00
    只关心产品 有没人用。。。现在很多时候是,东西都开源出来了 ,看都没人看
    mumuy
        14
    mumuy  
    OP
       2021-11-04 08:24:35 +08:00
    @akira 就是一种尝试而已
    sanggao
        15
    sanggao  
       2021-11-04 09:49:56 +08:00
    什么年代了,还觉得前端代码是宝贝呢
    说白了一文不值
    mumuy
        16
    mumuy  
    OP
       2021-11-04 10:11:12 +08:00
    @sanggao 每个人都有自己的价值观,就像在一些人眼里你也一文不值一样呀
    mumuy
        17
    mumuy  
    OP
       2021-11-04 10:12:45 +08:00
    @ijrou 本来就没有秘密呀,只是增加别人破解的难度,让对方失去兴趣而已……我用的不是二楼的方法
    YvesX
        18
    YvesX  
       2021-11-04 10:21:53 +08:00
    把辛辛苦苦的那些东西放进后端
    其他页面代码不就和美术作品一样,给人看的东西,拷贝不了也挡不住临摹,何苦呢
    sanggao
        19
    sanggao  
       2021-11-04 10:25:04 +08:00
    @mumuy 世间本无事,庸人自扰之。 你觉得你的代码有让别人破解的价值吗?前端不都是看看,然后自己就写写出来了?
    mumuy
        20
    mumuy  
    OP
       2021-11-04 10:46:18 +08:00
    @YvesX 不是所有人都希望被看啊,代码是运行的,页面才是给看的
    mumuy
        21
    mumuy  
    OP
       2021-11-04 10:49:11 +08:00
    @sanggao 那是我的想法啊,你这逻辑和大街上盯着人家女生看,还想动手一样,“穿那么好看不就给人看的么?”用你的庸才的思维方式去尝试解释人家的想法,你不觉得这不但庸还俗么?
    oxromantic
        22
    oxromantic  
       2021-11-04 13:35:41 +08:00
    偷的是创意,谁会偷代码,举例来说,吃鸡刚火,网易腾讯就 copy 了手游
    ganbuliao
        23
    ganbuliao  
       2021-11-04 13:37:46 +08:00
    前端就是因为开放才能发展的这么快,而且混淆代码已经让破解的人挺头疼的了,要是想加密的话建议换一种思路走客户端。
    ganbuliao
        24
    ganbuliao  
       2021-11-04 13:38:48 +08:00
    换一种思路 我也经常抄别人的代码,让别人抄抄我的怎么了,别人抄说明我写的东西有价值啊。
    r007b34r
        25
    r007b34r  
       2021-11-04 13:53:55 +08:00
    有些人没必要搭理,你发现了问题,对于你来说是个问题,你尝试去解决,你在过程中收获了成长,别人在结果中收到了启发,哪怕最终别人渐渐思路和代码的时候应用场景不同,这依旧值得尊重。
    mumuy
        26
    mumuy  
    OP
       2021-11-04 14:04:37 +08:00
    @ganbuliao 有些人乐意,有些人不乐意啊!你被别人嫖,觉得舒服,可是有些人觉得是冒犯呀,你不能用你的标准来绑架别人吧
    mumuy
        27
    mumuy  
    OP
       2021-11-04 14:06:40 +08:00
    @r007b34r 乐意就开源,不乐意就加密防护呀,不能把剽窃说的那么高尚吧
    mumuy
        28
    mumuy  
    OP
       2021-11-04 14:07:56 +08:00
    @oxromantic 真有人直接偷呀,我很多代码都被复制走了,还把之前混淆的一些东西改掉,就算压缩混淆了也有人会弄
    ganbuliao
        29
    ganbuliao  
       2021-11-04 15:59:50 +08:00
    @mumuy 我哪里绑架了 我就是说了一个自己的想法 。你最近回复的几条 明显和人家回复的对不上啊 /dog
    r007b34r
        30
    r007b34r  
       2021-11-04 16:38:06 +08:00
    @mumuy 您可能完全误会了我的意思,我是谁你的思路和实现代码本身对于别人来说就是值得参考和借鉴的,你尝试去解决你遇到的问题,并且分享成果,这是值得尊重的,现在明白了吗?
    gengchun
        31
    gengchun  
       2021-11-04 16:46:45 +08:00
    @ijrou 虚拟化只是为了妨碍对方调试吧?还有别的目的吗?
    ijrou
        32
    ijrou  
       2021-11-04 16:50:51 +08:00
    @gengchun #31 破解逆向的难度也会增加
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2736 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 09:38 · PVG 17:38 · LAX 01:38 · JFK 04:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.