V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zyEros
V2EX  ›  浏览器

关于前端代码逻辑的保护, sablejs 你值得拥有

  •  
  •   zyEros · 2021-06-08 16:32:28 +08:00 · 4133 次点击
    这是一个创建于 1268 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如果按照提升破解成本的目标,自定义字节码执行是一条很靠谱的路径,有需要的可以参考: https://github.com/sablejs/sablejs

    12 条回复    2021-06-08 20:48:06 +08:00
    yushiro
        1
    yushiro  
       2021-06-08 17:16:54 +08:00 via iPhone
    不知道能都和 jq 之类的第三方库兼容
    iikebug
        2
    iikebug  
       2021-06-08 17:36:41 +08:00
    前端搞代码保护都是虚的, 重要逻辑放 wasm 搞搞就好了
    newmlp
        3
    newmlp  
       2021-06-08 17:45:12 +08:00
    保护逻辑有毛用,直接找到输入输出,黑箱调用就行了,干嘛要搞清楚里面的逻辑
    zyEros
        4
    zyEros  
    OP
       2021-06-08 18:07:35 +08:00 via Android
    @newmlp 有点想当然了,你可以看看这个 https://github.com/sablejs/sablejs/issues/10
    zyEros
        5
    zyEros  
    OP
       2021-06-08 18:08:53 +08:00 via Android
    @iikebug 一个道理,但是 wasm 要去调用外部 DOM BOM 的逻辑太透明
    zyEros
        6
    zyEros  
    OP
       2021-06-08 18:12:29 +08:00 via Android
    @yushiro 他也沙盒的作用
    no1xsyzy
        7
    no1xsyzy  
       2021-06-08 19:33:52 +08:00   ❤️ 1
    @zyEros 看了下你这 issue10,很明显调用外部也是近乎透明的。只要破解者传给你的全都是被包装过的
    wraps(wrapped) => (...args) => {debugger; let result=wrapped(...args); debugger; return result}
    别的不管,任何需要调用环境的加密,直接覆盖你的 preamble 就行了。

    而且 vm 形式理论上可以任意进行状态回归( deepcopy 一下),而且边界清晰得多,实际上当黑箱用比混淆过的代码更方便了。

    更不用说,你认为应当减少与外界的交互?正确的方法是拿大量无效的外界交互去干扰。

    就好比你分发 bin 也应当默认 strace 存在比较好。大部分应用重写、甚至写得更好真不是什么难事儿。所谓要『保护』的东西其实根本就不存在,保护了个寂寞。
    3dwelcome
        8
    3dwelcome  
       2021-06-08 19:47:41 +08:00
    我一直想吐槽,楼主来 V2 宣传过几次了,可 github 代码又不开源。。
    3dwelcome
        9
    3dwelcome  
       2021-06-08 19:53:01 +08:00
    还有讨论到前端加密,V2 一直挺激烈的。

    我个人感悟就是,用程序代码生成一个一次性的虚拟机,关键逻辑只执行一次性代码,这样相对而言安全一些。

    让黑客无法静态调试,依赖虚拟机运行的逻辑代码,也是服务器按需下载。下次请求的虚拟机指令就变了,下载逻辑代码自然也会变。
    matrix67
        10
    matrix67  
       2021-06-08 20:36:49 +08:00
    @3dwelcome #9 可是又有啥前端业务能够那么重要要保护,不是数据最重要么,,,,
    zyEros
        11
    zyEros  
    OP
       2021-06-08 20:45:51 +08:00 via Android
    @no1xsyzy 之后会产出一个人机识别产品,会有代码还原及 hack 的活动,到时候有现金奖励,欢迎参与😄
    zyEros
        12
    zyEros  
    OP
       2021-06-08 20:48:06 +08:00 via Android
    @3dwelcome 是的,实际上商用版 opcode 会变化
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1177 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:05 · PVG 07:05 · LAX 15:05 · JFK 18:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.