想到一个前端加密对付爬虫的方案,不知道有没有可行性

2024-03-21 01:26:03 +08:00
 renmu
在一些关键接口增加前端加密,加密代码由服务端返回,代码混淆人类无法正常读取。



这时候制作爬虫的一般会选择采用 eval 执行来获取加密后的参数,可以尝试在这段加密的代码中投毒,包括但先不限于删库等操作
3825 次点击
所在节点    程序员
35 条回复
fpk5
2024-03-21 02:02:10 +08:00
恭喜你重新发明了木马
hronro
2024-03-21 02:05:12 +08:00
你说你要投毒, 你怎么区分正常用户和爬虫? 还是说你正常用户也投毒?

另外 JavaScript 虚拟机的一大优势就是 sandbox 隔离, 你说的投毒, 其实基本不太可能能成功
phrack
2024-03-21 02:05:42 +08:00
确实是个攻防手段。不过魔也可以高一丈,sandbox 你这段代码就行了
drymonfidelia
2024-03-21 03:52:59 +08:00
想太多了,专业的爬虫团队都是上 AST 直接分析语法树提取算法,根本不可能执行你的代码
streamrx
2024-03-21 03:55:20 +08:00
没有用 只要逆向的收益足够大 就 100%会被破解。没有任何方法能预防 各种手段都只是增加逆向的难度罢了
renmu
2024-03-21 08:04:43 +08:00
我知道 sandbox 可解,但只要成功一次就足以恶心到人
算法是由服务端返回的,目的就是诱导爬虫使用 eval 执行代码,绝大多数爬虫是不会每天分析你的算法的
heliumjt
2024-03-21 08:22:04 +08:00
我自建的一个 RSS 源就是直接 eval 了__NUXT__全局变量来获取数据,确实担心过安全风险。不过是大公司的网站,应该没问题……的吧?
kdwnil
2024-03-21 08:31:19 +08:00
恶不恶心爬虫我不知道,但我知道万一检测组件出 bug 导致翻车会恶心到普通用户,还会有机会触发一个叫入侵计算机系统罪的口袋。与其花大成本折腾自己可能找个靠谱的律所到处发函更实在……
renmu
2024-03-21 08:41:44 +08:00
@heliumjt 我也是这么干的(笑)
cherryas
2024-03-21 08:42:55 +08:00
想像里什么都有,动态加密+动态混淆+各种环境检测+代码量大到人类无法正常读取,基本都是知名的专业安全团队才能做到。
dhb233
2024-03-21 09:48:52 +08:00
反爬没有一劳永逸的办法。你不管怎么做,如果有足够的利益,人肉爬数据你怎么防?
renmu
2024-03-21 10:04:38 +08:00
@dhb233 我只是随便提了一种方法,使用沙盒就能处理这个方案,标题也没写“一劳永逸防爬虫”
ZnductR0MjHvjRQ3
2024-03-21 10:15:19 +08:00
没屁用 防一防脚本小子
lichdkimba
2024-03-21 10:30:54 +08:00
无头浏览器直接取页面上显示的不就行了
dhb233
2024-03-21 11:59:35 +08:00
@renmu 我也没说这个方法不行啊。。。爬虫和反爬虫是互相对抗的,能不能防住,得上了才知道,你哪知道别人在用什么技术爬你的网站。就算今天能防住,可能明天又防不住了
weeei
2024-03-21 12:05:02 +08:00
知乎使用特殊字体反爬虫,眼睛看的内容是正常的,爬下来的文本是乱序的,使用特殊字体控制能正常渲染。
devswork
2024-03-21 12:16:53 +08:00
控制浏览器 + OCR (结构识别),怎么对付?
proxychains
2024-03-21 12:19:43 +08:00
css 漂移?
eber
2024-03-21 13:01:09 +08:00
@devswork 你这个方案更狠,我想了一下好像无解!!!😂
seWindows
2024-03-21 13:07:26 +08:00
逻辑炸弹 2.0 版本?

如果检测组件出 bug 导致翻车会恶心到普通用户,起码会被曝光:“安全警告:xxxx 网页挂病毒木马,大家不要访问"。等等

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

https://yangjunhui.monster/t/1025585

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

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

© 2021 V2EX