• 请不要在回答技术问题时复制粘贴 AI 生成的内容
main1234
V2EX  ›  程序员

WASM 这种技术为啥很少看见使用呢??另外如何防止接口被刷

  •  
  •   main1234 · Feb 28, 2024 · 7964 views
    This topic created in 979 days ago, the information mentioned may be changed or developed.

    目前在 WASM 中加密,然后后端解密,感觉十分方便,还没法破解,这种技术为啥很少被使用呢??

    另外求问下,我有一个 IM 的接口,用户可以免登录,如何方式被刷???想要必须在打开页面情况下才能调用

    43 replies  •  2024-08-09 19:01:57 +08:00
    Tyaqing
    Tyaqing
    Feb 28, 2024
    1
    1.浏览器的话有 webcrypto 已经足够使用了
    2.校验 refer/csrf token/API 防火墙,这个看你接口价值大不大,大的话依次建设
    pkoukk
    pkoukk
    Feb 28, 2024
    2
    在桌面端软件都逐渐被 react 占领的今天,想反其道行之,用一个更复杂的语言和技术代替简单的,怎么可能呢?
    cvooc
    cvooc
    Feb 28, 2024
    3
    主要是兼容性考虑, 加上绝大多数项目没有很重的必须前端解决的性能需求
    tangtang369
    tangtang369
    Feb 28, 2024
    4
    你可以看看流媒体播放 wasm 是很常见的啊
    cat
    cat
    Feb 28, 2024
    5
    我寻思着 react 和 wasm 也不冲突啊…
    我就在 react 的项目里使用过 wasm 来处理分子结构,用啥技术要看投入产出比
    Senorsen
    Senorsen
    Feb 28, 2024
    6
    > 目前在 WASM 中加密,然后后端解密,感觉十分方便
    这要看怎么定义方便了…
    > 还没法破解
    这个不成立吧,逆向一下就行了
    jim9606
    jim9606
    Feb 28, 2024 via Android
    7
    wasm 只适合计算密集应用,例如非要在浏览器里搞科学计算或者神经网络的。
    io 密集的应用 wasm 很可能没优势,而且 js/wasm 交互需要额外的跨域操作,很有可能被 js 的 jit 优化超过。
    me1onsoda
    me1onsoda
    Feb 28, 2024
    8
    前后端对接麻烦吧
    wanguorui123
    wanguorui123
    Feb 28, 2024
    9
    后端实现麻烦才考虑用 WASM 实现
    qq135449773
    qq135449773
    Feb 28, 2024❤️1
    10
    一个帖子暴露某些 v2er 真实水平
    main1234
    main1234
    OP
    Feb 28, 2024
    11
    兄弟们,我前端是真不懂啊,我纯纯后端开发,前端大大实在想不出什么加密方法,我才考虑的 WASM[哭]
    main1234
    main1234
    OP
    Feb 28, 2024
    12
    @qq135449773 老哥我真不懂啊,为啥啊,真心求教
    main1234
    main1234
    OP
    Feb 28, 2024
    13
    @Tyaqing webcrypto 这种能防止不断地 debug 最后破解出来么 感觉 web 的 js 代码都是明文的??
    main1234
    main1234
    OP
    Feb 28, 2024
    14
    @Senorsen 一个 golang 写的 md5 逆向后是 2w 多行的 c ,这种要怎么破解??
    WaldenHorizon
    WaldenHorizon
    Feb 28, 2024❤️1
    15
    直接调用 wasm 里面的加密方法不就间接破了么,跟破 so 库加密一样
    zzzmh
    zzzmh
    Feb 28, 2024
    16
    前端加密的尽头是不加密,我已经折腾完一整圈现在终于想通了
    main1234
    main1234
    OP
    Feb 28, 2024
    17
    @wangritian 哦我想起来了,我最初的想法是避免直接通过接口调用,需要用户在浏览器下正常打开页面,然后 WASM 里面校验了和前端协商的密码 js 方法,只有在一些 js 方法存在的情况下,WASM 才能运行
    adoal
    adoal
    Feb 28, 2024❤️1
    18
    wasm 用得确实不多,毕竟开发麻烦,培训班出来的阿狗阿猫们干不了。但是在传统前端不好搞的地方,有能干的人时,还是可以用一下的,比如 B 站。
    adoal
    adoal
    Feb 28, 2024
    19
    另外似乎 wasm 在 web 之外更受欢迎,比如各种 API 网关用 wasm 做插件。有些新的编辑器也用 wasm 做插件。
    xeneizes
    xeneizes
    Feb 28, 2024
    20
    @main1234 #11 我前端加密用的是前端随机生成 aes 的 key iv ,再用后端传过来的 rsa 私钥加密 key iv ,前端传给后端的 data 用 aes 加密
    LeeReamond
    LeeReamond
    Feb 28, 2024
    21
    @xeneizes 所以对方要刷你的接口只需要定位到随机生成部分的代码?
    relsoul
    relsoul
    Feb 28, 2024
    22
    1. wasm 有浏览器兼容性问题,外加一点点性能问题
    2. 恶意用户可以不了解你的加密规则,只需要拿到加密后的结果即可。
    3. 建议在 WAF 层做限流拦截处理。
    yangheng4922
    yangheng4922
    Feb 28, 2024
    23
    @main1234 #14 不需要解密啊 只要逆向到能调用加密方法就行了
    relsoul
    relsoul
    Feb 28, 2024
    24
    @relsoul 补充一点,建议把防止改为 如何提高恶意用户刷接口的成本 这样的话会好理解一点。
    tedding
    tedding
    Feb 28, 2024 via iPhone
    25
    你看看 figma 用了多少🤦🏻‍♂️
    WaldenHorizon
    WaldenHorizon
    Feb 28, 2024
    26
    @main1234 防君子防不住小人吧,可以插件破解或者干脆自制浏览器。我认为精力还是更多放在服务端,比如限制 ip 的请求频率等等
    xulihang
    xulihang
    Feb 28, 2024
    27
    C++写的图像处理算法一般也都是用 wasm 在浏览器运行的,比如这个条码扫描项目: https://www.npmjs.com/package/dynamsoft-javascript-barcode
    winglight2016
    winglight2016
    Feb 28, 2024
    28
    前端加密没什么意义,增加了自己开发的调试难度,特别是针对不需鉴权的接口,硬要限制使用浏览器才能访问,还不如做个 electron 的客户端更靠谱
    greensea
    greensea
    Feb 28, 2024❤️1
    29
    WASM...接口防刷……
    这就不得不提一下之前我做的 wCaptcha 了: https://www.v2ex.com/t/910042
    LavaC
    LavaC
    Feb 28, 2024
    30
    1 、大部分前端项目用不上,纯展示或者后台系统根本用不上这种技术;
    2 、大部分前端开发者不具备开发 wasm 项目的技术
    afeiche
    afeiche
    Feb 28, 2024
    31
    cpu 密集的才需要用 wasm ,比如图像,音视频,计算之类的
    lin996feng
    lin996feng
    Feb 28, 2024
    32
    前端都是透明的,没啥用,稍微分析下你的 js 代码,看下调用,然后下载你的 wasm 调用就好了,逆向都不用。
    awinds
    awinds
    Feb 28, 2024
    33
    wasm 已经被网安认为是不安全的
    GeruzoniAnsasu
    GeruzoniAnsasu
    Feb 28, 2024
    34
    因为前端圈子对 js 「终究只是个处理字符串的语言」这项自我认知越来越明确,不再幻想浏览器统治一切了
    icy37785
    icy37785
    Feb 28, 2024 via iPhone
    35
    有一说一,我觉得逆向 wasm 可读性比混淆后的 js 要好很多。
    除了前后端共用代码以外,我一般不咋用 wasm ,毕竟兼容性目前来说还是 js 更好。
    Nosub
    Nosub
    Feb 28, 2024 via iPhone
    36
    最主要是不会,当然简单的 wasm 本身没有任何难度,比如 op 说的加解密,因为 Java ,JavaScript ,c#,c/c++,rust 几乎主流的编程语言都可以编译成 wasm ,而不是像以前的 dll 或是 so 大部分只能通过 c/c++来写,不会是不想去学,不想去用。
    qq135449773
    qq135449773
    Feb 29, 2024
    37
    @main1234 #12 我说的不是你,我说的是这帖子里回复的其他某些人。
    fenglirookie
    fenglirookie
    Feb 29, 2024
    38
    纯前端加密不管怎么加密都都没有意义,除非像百度网盘一样的,加密函数每一次使用的时候从后端获取加解密代码,但是这种就不再是纯前端加密了
    main1234
    main1234
    OP
    Feb 29, 2024
    39
    @fenglirookie 这种怎么防止重放攻击呢??每次调用接口前都要先请求一次加密函数?
    fenglirookie
    fenglirookie
    Mar 2, 2024
    40
    @main1234 百度的做法是有个计数器,每次都不一样
    0xD800
    0xD800
    Jul 8, 2024
    41
    @main1234 看一下 greensea 的回复,他的方式挺好的,也可以参考: https://github.com/mCaptcha/mCaptcha
    deprecatedCoder
    deprecatedCoder
    Jul 23, 2024
    42
    wasm 离线 英汉字典 https://github.com/mojocn/wasmecdict
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3399 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 74ms · UTC 10:37 · PVG 18:37 · LAX 02:37 · JFK 05:37
    ♥ Do have faith in what you're doing.