图片死活传不上去:事件是有出身的

简介: 阿杰的自动上传卡在媒体库:合成拖放处理器触发了,图却死活传不上去。老陈一句话点破:事件有出身,isTrusted 才是入场券。cda v0.26.0 的 trusted 拖放让浏览器替你拖——自己读盘、构造真实 File、盖章 isTrusted=true。

周日晚上十点,阿杰的公众号自动化就差最后一步:封面图自动上传。

他翻遍了媒体库页面,连一个 input[type=file] 都没找到。整个上传区就是一块虚线框,上面一行小字:把图片拖到这里。

阿杰不慌。cda 有 upload_dragdrop,专门收拾这种只认拖拽的组件——派发 dragenterdragoverdrop,把文件塞进 dataTransfer,页面自己的 drop 处理器接手上传。他上周刚用过,一次成功。

这次他敲了命令,返回 success。页面上那个虚线框闪了一下,进度条跳出来又缩回去。

然后,没了。

图没上去。

阿杰盯着屏幕看了十秒,重跑。虚线框再闪一下,进度条再跳一次,图还是没上去。第三遍的时候他已经在 console 里埋好了日志——drop 处理器明明执行了,文件也在 dataTransfer.files 里躺着,可页面的上传逻辑就是装死。

他顺着断点往里翻,最后停在一行判断上:

if (!event.isTrusted) return;

event.isTrusted: false

阿杰瞬间不困了,但也更糊涂了:事件是他发的,处理器也跑了,就差这一个布尔值,卡死了整个流程。


第二天早上,老陈端着咖啡路过,看见阿杰的黑眼圈,瞥了一眼屏幕上的断点。

「你在跟浏览器的信任体系较劲。」老陈说,「事件是有出身的。人手拖出来的,isTrusted 是 true,浏览器盖章认证;代码 dispatchEvent 合成的,永远是 false——不管你模拟得多像。」

「那我模拟得再像也没用?」

「没用。isTrusted 是只读属性,脚本改不了,这是浏览器的防伪设计。微信媒体库这类组件就查户口:你的 drop 处理器跑得再欢,出身不对,不收货。」老陈拉开椅子坐下,「这叫反自动化校验,拦的就是你这种脚本。」

「那怎么办,我雇个人肉拖图?」

「让浏览器替你拖。」老陈放下咖啡,「cda 前两天升到 v0.26.0,upload_dragdrop 加了 trusted 模式。它不走 dispatchEvent,走 CDP——浏览器调试协议。你等于站到浏览器里面去下指令:Chrome 自己读盘,构造一个真实的 File,用浏览器级输入完成整个拖放。」

isTrusted 呢?」

「浏览器自己动手,章自然是真的。」


阿杰半信半疑,改了命令。之前是这么写的:

# 合成拖放:派发 dragenter/dragover/drop,处理器会跑,但 isTrusted=false
upload_dragdrop current '{"selector":".upload-area","data":{"base64":"<b64>","filename":"cover.jpg","mime":"image/jpeg"}}'

现在只改了两处——加 trusted: truedata 从 base64 换成本机路径:

# 真实拖放(v0.26.0):浏览器读盘构造真实 File,isTrusted=true
upload_dragdrop current '{"selector":".upload-area","trusted":true,"data":{"path":"/Users/jay/Pictures/cover.jpg"}}'

回车。返回里多了一个字段:

{
   
  "success": true,
  "data": {
   
    "selector": ".upload-area",
    "filename": "cover.jpg",
    "x": 642,
    "y": 318,
    "trusted": true,
    "settledMs": 806
  }
}

trusted: true

这一次,媒体库的缩略图安安静静地出现了。没有闪动,没有抗议,就像有人亲手拖进去的一样。

阿杰靠在椅背上,把这次升级跟之前的方案摆在一起,发现了几个「不一样」:

  1. 出身变了,不是演技变了。 合成事件是「让页面以为有人拖」,trusted 拖放是「让浏览器替你拖」。isTrusted=true 是浏览器亲手盖的章,脚本伪造不出来——但可以请浏览器自己盖。
  2. 文件是真的。 dataTransfer.files 里是真 File,大小、类型、内容都对,任何一层校验都挑不出毛病。
  3. 细节也顺手补了。 旧的合成路径加了 dragleave 收尾,拖完不再留下「亮灯」残留——就是那种高亮框悬在页面上死活不消失的尴尬。
  4. 上传三件套凑齐了。 找得到 input[type=file]upload_file;只有拖拽区用 upload_dragdrop 合成路径;查出身的组件上 trusted: true。三种武器,对应三级防御。
  5. 前提只有一条。 文件得在跑 Chrome 的那台机器上——毕竟是 Chrome 自己读盘。

阿杰忽然想明白一件事:以前他以为自动化是把人的动作「翻译」给页面,一层事件一层事件地模仿。现在才明白,最高效的路是让浏览器自己动手——它本来就是执行者,何必隔着一层合成事件去冒充人。

老陈喝完最后一口咖啡,站起来留下一句话:

「反自动化的本质是信任问题。你伪造不了浏览器的章,但可以让浏览器亲手盖章。」


cda 的 README 里有 upload_dragdrop 的完整参数表:合成路径(base64 / URL 拉取)和真实拖放(trusted + 本机路径)三种写法都在。下一个卡住你自动化的上传组件,可能就差一个 trusted: true

目录
相关文章
|
3月前
|
数据采集 人工智能 分布式计算
多Agent集群中的"情报官"设计:为什么系统需要一个RDD
在多Agent系统中,信息采集环节的失误往往是级联错误的根源。本文从行业实践和学术研究两个维度,论证了专职情报采集Agent的必要性,并详细解析了枢衡RDD(资源探测)的五大架构设计原则,包括与CAD的对抗性协作机制等。最后提供了一套可落地的自检清单,帮助开发者判断自己的Agent集群是否需要引入专职情报官角色。
|
3月前
|
人工智能 自然语言处理 安全
多AI聚合的五个常见误区:你以为的“交叉验证”可能只是“重复犯错”
本文剖析多AI聚合系统五大常见误区:盲目追求数量、迷信“少数服从多数”、误信数据天然独立、将分歧视为缺陷、幻想彻底消除幻觉。强调模型独立性、分歧价值与用户主动判别才是发挥聚合效能的关键。
336 5
|
3月前
|
SQL 安全 测试技术
《ZAKU渗透论:卓伊凡的2026渗透工程》第一章:黑客是怎么工作的?
渗透测试是授权下模拟黑客攻击,检验系统安全性;白帽合法防护,黑帽非法入侵,灰帽亦违法。攻击分7步:侦察、武器化、投递、利用、安装、C2、目标达成。它不同于自动化漏洞扫描,重在人工验证与深度分析。(239字)
421 6
|
3月前
|
人工智能 缓存 安全
Claude Code全攻略 命令大全+三种工作模式+记忆体系+实战工作流详解
在AI编程工具飞速迭代的当下,Claude Code凭借终端原生运行、无需依赖笨重图形IDE、深度理解项目架构的优势,已经成为主流开发者必备的效率工具。它不只是简单的代码生成助手,更能独立完成项目解读、文件批量修改、终端命令执行、程序报错修复、版本仓库管理等全流程开发工作,轻量化占用资源,适配全系统运行。
723 7
|
3月前
|
人工智能 运维 监控
阿里云部署Hermes Agent完整教程 搭配Token Plan配置实操指南
随着AI智能体应用愈发普及,Hermes Agent凭借自进化学习、持久记忆、多工具协同、自主任务拆解等强大特性,成为科研分析、办公自动化、网页信息采集、项目管理等场景的热门选择。不同于普通对话机器人,Hermes能够自主规划工作流程,调用浏览器、代码解释器、文档读写等工具,完成长周期复杂任务,越使用越贴合个人工作习惯。
445 1
|
3月前
|
存储 SQL 安全
【Java并发编程】JMM Java内存模型:原子性、可见性、有序性、happens-before原则(附《思维导图》+《面试高频考点清单》)
Java内存模型(JMM)是Java并发编程的基石,抽象定义主内存与线程工作内存的交互规则,系统解决可见性、原子性、有序性三大核心问题,并通过happens-before、volatile、synchronized等机制保障多线程安全与跨平台一致性。
|
3月前
|
算法 测试技术 PyTorch
在 AMD ROCm DSW 上部署 Qwen3.6-27B-FP8:vLLM、MTP 解码加速与小并发压测
本文记录一次在 ModelScope DSW AMD GPU 实例上完成的 Qwen3.6-27B-FP8 推理实践。实验重点不是单纯证明模型可以启动,而是围绕 vLLM ROCm 服务、Qwen MTP 投机解码、near-8K 长上下文正确性验证、FP8 KV cache 和小并发 serving 压测,整理一套可复现、可复查、可继续扩展的 AMD GPU 大模型推理 baseline。
1180 0
|
2月前
|
人工智能 文字识别 并行计算
离谱!我以为 OCR 还在一页页抠字,结果百度 1.2 万 Star Unlimited-OCR 直接把长文档一口气读完
百度开源 Unlimited-OCR,把图片、长文档、多页 PDF 这类非结构化资料推进到 Markdown、表格和可检索文本,适合 RAG、知识库和 Agent 文档入口。
441 3
离谱!我以为 OCR 还在一页页抠字,结果百度 1.2 万 Star Unlimited-OCR 直接把长文档一口气读完
|
3月前
|
人工智能 安全 前端开发
面试官问:什么是 Harness 工程?AI Agent 时代,测试人必须补上的新能力
Harness工程是AI Agent时代的“工作台”,聚焦为其构建稳定、可控、可验证的工程环境。它涵盖上下文管理、工具调用、沙箱权限、测试验证、日志观测与反馈回路,解决Agent在真实项目中因缺上下文、缺工具、缺反馈、缺边界导致的失控问题。本质是让Agent“能做事、做得对、出错可修复”。
|
3月前
|
人工智能 分布式计算 监控
多智能体集群审计机制设计:免疫、熔断与信誉治理
多智能体系统(MAS)在提升 LLM 应用能力的同时,也带来了幻觉级联、伪共识等新型风险。本文基于枢衡(Shuheng)V2 集群的工程实践,系统阐述审计角色(CAD)的架构设计——涵盖免疫系统与熔断器的双职能模型、职责隔离的四项红线、五类实质性测试的审计协议、多维信誉账本的动态治理机制,以及审计与创新之间的张力平衡。文末提供可直接落地的协议设计参考。

热门文章

最新文章