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

303 天前
 renmu
在一些关键接口增加前端加密,加密代码由服务端返回,代码混淆人类无法正常读取。



这时候制作爬虫的一般会选择采用 eval 执行来获取加密后的参数,可以尝试在这段加密的代码中投毒,包括但先不限于删库等操作
3471 次点击
所在节点    程序员
35 条回复
drymonfidelia
303 天前
@devswork
@eber
采集上报全部鼠标键盘触摸传感器数据,ai 模型分析,不通过就故意拖慢响应或者 ban JA3 指纹 1 天
akamai bot manager 就是这么做的,仍然一堆服务能打码
shuimugan
303 天前
Deno:?
drymonfidelia
303 天前
另外 akamai 已经能精准识别 curl_cffi 了,20 个请求内 100%封,要用魔改版本的 tls_client ,原版 tlsclient 也不行
tool2d
303 天前
youtube 就是,那个视频签名算法是写在 js 里的,挺复杂,我也看不懂,用 eval 来调用求解。

算法经常变,我都有收集官方一大堆 js 代码了。

vok2aDe12AsWDirE
303 天前
这种想法还比较初级,现在都用 VMP 混淆代码,后台服务器更新操作位;依然被破解;
locoz
303 天前
你说的这种做法叫投毒/埋坑,属于早就被玩烂的操作了。

常见的操作有比如先获取一些浏览器环境中获取不到的信息,用于检测是否是真实浏览器,然后如果不正常就在生成的 sign 里打上特殊标记,或者是发个网络请求直接上报具体的环境信息,或者是打日志警告,或者是执行一些计算量超出正常水平的东西再执行原始逻辑之类的。玩法一堆,而且远比“删库”能恶心人。

“删库”这种极端操作的成功概率基本为 0 ,你也无法保证你不会影响到普通用户,再加上大点的安全厂商都会有做自动化的安全审计,检测到你搞骚操作就直接就给你标记风险了,毕竟谁知道你是想做防护还是想搞普通用户呢?

另外,你以为这种操作很无解,代码混淆了没人仔细分析就看不懂,但其实解析成 AST 之后处理一下冗余内容,代码结构是很清晰的。再加上现在的大语言模型上下文长度已经足够长了,能力完全够将清理后的逻辑部分代码还原出大致的原始状态,或者是直接按要求对代码进行自动化处理。无论是剥离出实际需要的部分,还是察觉出你整活,都极其简单,门槛极低。以前还得专门训练模型,现在花点小钱随便就能搞。

所以可以说在当下,在中低程度混淆处理的代码层面投毒/埋坑的意义已经不大了,代码层面的对抗主要还是在让别人无法正常分析代码上,比如几年前比较先进的技术是套一层“虚拟机”,逻辑完全按人家自己的来,后面发展出了基于 WASM 直接跑加壳后的编译后程序,再后面就是像楼上说的结合动态变化的处理方式高频更新。但是这些操作终究是前端代码层面做的事情,大不了别人完全虚拟一套环境搞,只要级别比你高,你代码里做再多操作也看不出毛病。

如果你平时有了解一些相关安全厂商做的事情的话,你会发现其实他们现在都在往行为风控方向发展。以前他们都会吹自己的验证码、WAF 之类的产品有多难被破解,代码加密、动态更新、高强度壳啥的。现在吹的都是通过识别客户端各方面的操作是否像真人发出的,然后进行分级风控,比如疑似风险客户端就必须要进行计算后才能走正常逻辑,通过大幅加高攻击方成本的方式来解决问题。
locoz
303 天前
还有像前面 @drymonfidelia 说的采集上报各种传感器数据做识别这种做法,理解不了的话可以去看看字节跳动的产品,抓包会看到大量向 mcs.zijieapi.com/list 这个地址上报的数据,内容细致到可以跟录屏一样完全回放你在使用时的整个操作过程和你操作时应该看到的状态。

这种程度的数据用在防护上,想要精准识别出是人还是机器操作,又或者是直接只请求了特定接口搞事情,都是很容易做到的,就看想不想管而已。
renmu
303 天前
@locoz 学到了
1018ji
303 天前
ttimasdf
302 天前
没用。你压根就没理解安全攻防的本质。就是资源的对抗。

说白了就是比谁更菜。搞安全和打电竞一样,菜就是原罪。

你了解你的对手吗?你防的是谁?他们的能力是什么样的?你的业务数据值得对方投入多大的资源?他们有这样的资源吗?你能投入多少开发资源去做防护?

从开发视角、技术视角出发去搞安全,最后迎接你的就是领导一句,你搞这些没用的玩意干啥?干嘛不花钱找外包干?你干的就比别人好了?
llsquaer
302 天前
@devswork 知乎现在搞字体混淆了??
EndlessMemory
302 天前
反爬最有效的手段就是给进攻方增加工作量,你把参数每天变来变去都比这个有效
lozzow
302 天前
我觉得最简单的反爬手段就是线下反爬
naythefirst01
295 天前
除了代码投毒 可以参考 boss 的反爬 思路类似
forty
157 天前
@llsquaer @devswork 知乎搞字体混淆了不可能,我天天复制都是正常的。

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

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

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

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

© 2021 V2EX