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

2022-02-24 10:21:08 +08:00
 LeeReamond

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

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

1991 次点击
所在节点    问与答
17 条回复
siknet
2022-02-24 10:25:35 +08:00
没用的,用个无头浏览器直接就能全部抓来

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

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

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

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

我现在数据交互从 Restful API 迁移到了 RPC ,加密是随手之劳的事情,自我安慰安全系数+1 。
siknet
2022-02-24 11:55:06 +08:00
没用的,你前端只要展示,用无头几乎没有抓不了的,代码都不用写,有现成的工具写下脚本就行了,只能说限制下访问频率
siknet
2022-02-24 11:56:02 +08:00
或者,未注册用户展示图片,注册用户展示 JS 图表,然后看日志抓人...
ch2
2022-02-24 11:57:26 +08:00
只要放出去,最终必定会被拿走,快慢无非是看你的数据价值高低
paopjian
2022-02-24 11:58:25 +08:00
不让他人获取数据最好的方法就是不展示
jones2000
2022-02-24 14:50:40 +08:00
申请你们数据汇总的算法专利, 谁用就收专利费。 爬数据直接发律师函。
pinktu
2022-02-24 16:27:25 +08:00
既然竞争对手爬,那就整点假数据忽悠
pengtdyd
2022-02-24 18:29:49 +08:00
想爬你,你做什么都没用。不想怕你,你做什么都可以

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/836092

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX