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

简介: 阿杰的自动上传卡在媒体库:合成拖放处理器触发了,图却死活传不上去。老陈一句话点破:事件有出身,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

目录
相关文章
|
2月前
|
人工智能 文字识别 前端开发
RPA 实战:滑块验证码、登录弹窗、动态页面通用处理方案
本文针对RPA自动化中三大顽疾——滑块验证码、登录弹窗、动态页面加载,提供经生产验证的实战方案:基于ddddocr实现高精度缺口识别与拟人化滑动轨迹;通过异常捕获+多 selector 智能弹窗感知;采用轮询检测+网络监听应对Ajax懒加载;辅以指纹浏览器、行为模拟与AI元素自愈,全面提升脚本鲁棒性与拟真度。
|
3月前
|
监控 算法 安全
跌倒行为目标检测数据集| 5200张 YOLO安防监护数据集
本数据集含5200张YOLO格式标注图像,聚焦跌倒行为检测,覆盖居家、病房等真实场景,支持YOLOv5/v8/v10等主流模型。专为智慧养老、安防监护与目标检测研究设计,具备姿态多样、光照复杂、遮挡丰富、人工精标等优势。
|
27天前
|
文字识别 安全 Windows
【2026】Umi-OCR文字识别工具:截图/批量/PDF识别全支持
Umi-OCR是一款免费开源的离线OCR软件,支持截图、图片、扫描PDF文字识别,全程本地运行,保障隐私安全。提供Paddle(高性能)和Rapid(低配兼容)双引擎,操作简单,支持批量处理与多格式导出。
|
3月前
|
缓存 Java Devops
云效 Maven 私有仓库实战:团队 jar 包依赖管理的 3 个高效配置,版本冲突率降低 80%
中小团队做 Java 开发,jar 包依赖管理经常出现三类问题:公共模块改了没人通知导致编译失败、SNAPSHOT 版本不一致引发线上诡异 bug、自建 Nexus 服务器维护成本高。阿里云云效制品仓库 Packages 提供免费 Maven 私有仓库,5 分钟开通,通过 settings.xml + pom.xml + CI/CD 流水线三步配置即可实现团队 jar 包统一管理。本文从创建仓库、settings.xml 完整配置、本地/流水线上传下载 jar 包、到 version 冲突排查,覆盖全流程,实测将团队依赖管理时间缩短 80%。
|
2月前
|
人工智能 JSON 自然语言处理
阿里云百炼Token Plan产品详解:产品功能、支持模型与Agent工具、套餐和Credits价格介绍
阿里云百炼Token Plan团队版是面向企业与开发团队的预付费AI大模型订阅服务,以统一Credits计量,整合Qwen、DeepSeek、Kimi等多厂商文本与图像生成模型,兼容OpenAI/Anthropic标准接口,适配Qwen Code、OpenClaw等主流AI编程与智能体工具。产品提供198元/月(标准)、698元/月(高级)、1398元/月(尊享)三档坐席套餐,搭配5000元共享用量包,支持席位分配、用量分析与SSO集成,承诺不使用对话数据训练模型,多租户隔离架构保障高峰不排队。
|
1月前
|
存储 人工智能 前端开发
开源版"带记忆的 Claude Desktop"——我试了 Rowboat 的多 Agent 编排
Rowboat 是一款开源AI工作操作系统(Apache-2.0,TS编写),主打多Agent协同编排、本地长期记忆与自动化工作流。支持邮件处理、代码重构、会议准备等场景,所有数据存于本地Obsidian兼容知识图谱,兼顾隐私与复利式上下文积累。
174 3
|
2月前
|
机器学习/深度学习 缓存 人工智能
一文读懂百炼 Kimi K3:2.8 万亿 MoE 模型、百万上下文、分层计费方案
全球首个开源3万亿级大模型Kimi K3正式上线阿里云百炼平台。该模型由月之暗面研发,参数达2.8万亿,支持100万Token超长上下文与原生视觉理解,具备文本生成、多模态推理及复杂逻辑深度思考能力,输入定价20元/百万Token(缓存命中仅2元)。在阿里云百炼官网:https://t.aliyun.com/U/fPVHqY 免费领取千万Tokens
|
3月前
|
数据采集 人工智能 分布式计算
多Agent集群中的"情报官"设计:为什么系统需要一个RDD
在多Agent系统中,信息采集环节的失误往往是级联错误的根源。本文从行业实践和学术研究两个维度,论证了专职情报采集Agent的必要性,并详细解析了枢衡RDD(资源探测)的五大架构设计原则,包括与CAD的对抗性协作机制等。最后提供了一套可落地的自检清单,帮助开发者判断自己的Agent集群是否需要引入专职情报官角色。
|
2月前
|
人工智能 文字识别 并行计算
离谱!我以为 OCR 还在一页页抠字,结果百度 1.2 万 Star Unlimited-OCR 直接把长文档一口气读完
百度开源 Unlimited-OCR,把图片、长文档、多页 PDF 这类非结构化资料推进到 Markdown、表格和可检索文本,适合 RAG、知识库和 Agent 文档入口。
446 3
离谱!我以为 OCR 还在一页页抠字,结果百度 1.2 万 Star Unlimited-OCR 直接把长文档一口气读完
|
3月前
|
人工智能 自然语言处理 安全
多AI聚合的五个常见误区:你以为的“交叉验证”可能只是“重复犯错”
本文剖析多AI聚合系统五大常见误区:盲目追求数量、迷信“少数服从多数”、误信数据天然独立、将分歧视为缺陷、幻想彻底消除幻觉。强调模型独立性、分歧价值与用户主动判别才是发挥聚合效能的关键。
339 5