如何防止基于 echarts.js 渲染的前端图表被爬虫盗取数据? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LeeReamond
V2EX    问与答

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

  •  
  •   LeeReamond 2022-02-24 10:21:08 +08:00 2590 次点击
    这是一个创建于 1354 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

    我现在数据交互从 Restful API 迁移到了 RPC ,加密是随手之劳的事情,自我安慰安全系数+1 。
    Hansah
        11
    Hansah  
       2022-02-24 11:55:06 +08:00
    没用的,你前端只要展示,用无头几乎没有抓不了的,代码都不用写,有现成的工具写下脚本就行了,只能说限制下访问频率
    Hansah
        12
    Hansah  
       2022-02-24 11:56:02 +08:00
    或者,未注册用户展示图片,注册用户展示 JS 图表,然后看日志抓人...
    ch2
        13
    ch2  
       2022-02-24 11:57:26 +08:00
    只要放出去,最终必定会被拿走,快慢无非是看你的数据价值高低
    paopjian
        14
    paopjian  
       2022-02-24 11:58:25 +08:00
    不让他人获取数据最好的方法就是不展示
    jones2000
        15
    jones2000  
       2022-02-24 14:50:40 +08:00
    申请你们数据汇总的算法专利, 谁用就收专利费。 爬数据直接发律师函。
    pinktu
        16
    pinktu  
       2022-02-24 16:27:25 +08:00
    既然竞争对手爬,那就整点假数据忽悠
    pengtdyd
        17
    pengtdyd  
       2022-02-24 18:29:49 +08:00
    想爬你,你做什么都没用。不想怕你,你做什么都可以
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2639 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 20ms UTC 09:46 PVG 17:46 LAX 01:46 JFK 04:46
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86