LeeReamond
V2EX  ›  问与答

如何防止基于 echarts.js 渲染的前端图表被爬虫盗取数据?

  •  
  •   LeeReamond · Feb 24, 2022 · 2920 views
    This topic created in 1559 days ago, the information mentioned may be changed or developed.

    公司业务,目前前端一些对公网展示图表的组件用的就是土法的后端调出数据库然后前端 echarts 渲染,但是这些数据都是汇总性比较强的,其实并不希望被(可能潜在的)商业对手的爬虫获取,有什么办法对这些数据进行加密吗?能起到防君子不防小人的水平即可。

    目前我能想到的是,所有中间环节中,canvas 爬虫本身不是很容易,可能脆弱的环节在于后端数据获取的部分,也许用某种方式加密然后前端用 wasm 解密?这种方法能拦截用户直接从浏览器中获取原始数据吗

    17 replies    2022-02-24 18:29:49 +08:00
    Hansah
        1
    Hansah  
       Feb 24, 2022
    没用的,用个无头浏览器直接就能全部抓来

    建议转图片
    yggd
        2
    yggd  
       Feb 24, 2022 via iPad
    建议转图片
    hoythan
        3
    hoythan  
       Feb 24, 2022
    后端生成 echarts.js 的 options 配置返回到前端.
    hoythan
        4
    hoythan  
       Feb 24, 2022
    简单来说 EChares 的阴间格式,一般君子是剥离不出数据的.小人剥离也比较麻烦.
    LeeReamond
        5
    LeeReamond  
    OP
       Feb 24, 2022
    @siknet
    @yggd 图片的交互性跟 js 图表比还是差了些,用户体验下降得有点厉害。后端传的 content 经过加密的话也不好解密吧?
    3dwelcome
        6
    3dwelcome  
       Feb 24, 2022
    很多人不了解 WASM ,其实并不适合做强加密,还不如直接用 JS 写点加密代码。

    WASM 所有导入导出入口函数,就和一个 DLL 一样,都是对外暴露的,谁都能调用,谁都能 HOOK ,很不安全。
    3dwelcome
        7
    3dwelcome  
       Feb 24, 2022
    WASM 的好处是隐藏内部算法,但是一般很厉害的 JS 加密,也没办法轻易还原出算法。
    LeeReamond
        8
    LeeReamond  
    OP
       Feb 24, 2022
    @3dwelcome 是这个问题,不知道万能的 v 友有没有什么聪明方案可以用在隐藏数据上
    LeeReamond
        9
    LeeReamond  
    OP
       Feb 24, 2022
    比如想个什么办法把 wasm 调用的具体代码藏起来,效果应该就很好了
    3dwelcome
        10
    3dwelcome  
       Feb 24, 2022
    @LeeReamond @LeeReamond 后台 API 数据反爬,就那点东西。加访问频率限制,加时效性签名,加 nonce ,识别浏览器指纹。

    如果真的用一楼方法,控制无头浏览器来抓 DOM 数据,前端也很难阻止的。

    当然多加密一次,总比不加好,防君子不防小人。

    我现在数据交互从 Restful API 迁移到了 RPC ,加密是随手之劳的事情,自我安慰安全系数+1 。
    Hansah
        11
    Hansah  
       Feb 24, 2022
    没用的,你前端只要展示,用无头几乎没有抓不了的,代码都不用写,有现成的工具写下脚本就行了,只能说限制下访问频率
    Hansah
        12
    Hansah  
       Feb 24, 2022
    或者,未注册用户展示图片,注册用户展示 JS 图表,然后看日志抓人...
    ch2
        13
    ch2  
       Feb 24, 2022
    只要放出去,最终必定会被拿走,快慢无非是看你的数据价值高低
    paopjian
        14
    paopjian  
       Feb 24, 2022
    不让他人获取数据最好的方法就是不展示
    jones2000
        15
    jones2000  
       Feb 24, 2022
    申请你们数据汇总的算法专利, 谁用就收专利费。 爬数据直接发律师函。
    pinktu
        16
    pinktu  
       Feb 24, 2022
    既然竞争对手爬,那就整点假数据忽悠
    pengtdyd
        17
    pengtdyd  
       Feb 24, 2022
    想爬你,你做什么都没用。不想怕你,你做什么都可以
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   952 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 93c8b4a0 · 51ms · UTC 21:14 · PVG 05:14 · LAX 14:14 · JFK 17:14
    ♥ Do have faith in what you're doing.