首页龙虾技能列表 › Ekyc Suite — 金融级身份验证套件

Ekyc Suite — 金融级身份验证套件

v1.0.3

AI 代理的 KYC 和 eKYC 身份验证套件,集成 8 项金融级生物识别和文档验证能力,包括人脸比对、活体检测、证件 OCR(身份证、银行卡、驾驶证、行驶证)及媒体标注(15+ 图像分析属性)。用于 KYC 客户入职、身份验证、人脸识别、反欺诈风险筛查和 AI 安全审计。

0· 142·1 当前·1 累计
下载技能包
License
MIT-0
最后更新
2026/4/7
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
该技能请求的凭证、端点和代码总体上与 eKYC 集成相符,但存在隐私/指令模糊之处(特别是围绕 OCR 输出的姓名/身份证号码),未完全符合「不传输个人文本」的明文规则。
评估建议
该技能可信度较高:调用腾讯云 eKYC 和媒体标注端点,需要两组 API 凭证。安装前需考虑的关键问题: - 敏感输出:脚本执行 OCR 会从图像中获取姓名、身份证号码和银行卡号。SKILL.md 指示代理不接受个人文本输入并展示了脱敏示例,但代码中没有保证自动脱敏。需请求作者添加或在返回文本前强制脱敏身份证/银行卡号,或实施明确阻止返回原始 PII 的策略。 - 凭证:仅按文档建议提供测试凭证。这些凭证允许技能调用上游 API 并传输图像/视频数据到腾讯云;遵循最小权限原则,避免在环境中放置生产密钥。 - 数据流与合规:技能将 base64 编码的图像/视频传输到第三方端点。在发送真实用户生物识别数据前,需确认上游提供商的数据保留和法律合规政策。 - 运营安全:代码阻止了私有/内部 URL(防 SSRF)并强制执行文件大小限制,这很好。仍应在受控环境(沙箱)中运行技能,并先用测试数据验证行为。 提高可信度的做法:添加明确的、可审计的脱敏步骤(或配置选项),在返回任何文本响应前从 OCR 输出中剥离或掩码 PII;在包中明确声明技能永远不会返回未掩码的标识符。如无法获得此保证...
详细分析 ▾
用途与能力
名称、描述、所需环境变量(KYC_APPID/KYC_SECRET 和 LABEL_APPID/LABEL_SECRET)以及 Python 脚本均与基于腾讯云的 eKYC/媒体标注集成相符。代码中调用的端点与声明的能力一致。
指令范围
SKILL.md 指示代理拒绝用户提供的个人文本(姓名/身份证号码)且仅接受图像/视频,但包含的脚本执行 OCR 并会返回提取的姓名/身份证/银行卡号。README 示例有时显示脱敏的身份证输出,但代码中没有明确的强制脱敏步骤,也没有严格指令告诉代理在回复前脱敏敏感的 OCR 输出。这种模糊可能导致敏感标识符泄露。
安装机制
无安装规范 — 仅指令运行时调用捆绑的 Python 脚本。依赖项极少(requests)。无下载的第三方二进制文件或远程安装 URL;代码存在于包中并在本地执行,因此安装风险较低。
凭证需求
请求的环境变量合理(KYC 和标注分别需要两组凭证)。这种访问级别对上游 API 调用是预期的,但提供这些凭证后,技能可完全调用上游 API 并传输图像数据(包括 OCR 提取的 PII)。包中警告使用测试凭证;这减轻了风险,但是用户必须遵循的操作要求。
持久化与权限
技能不请求 always=true,不持久化凭证,代码声明不存储/保留提交的数据。无修改其他技能或系统级设置的证据。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.32026/3/30

ekyc-suite 1.0.3 - 更新了 _meta.json 中的元数据。核心功能、接口或文档无变更。仅用于元数据更新的版本递增。

● 无害

安装命令 点击复制

官方npx clawhub@latest install ekyc-suite
镜像加速npx clawhub@latest install ekyc-suite --registry https://cn.clawhub-mirror.com

技能文档

金融级电子身份验证工具包,涵盖 8 项能力:人脸比对、活体检测、证件 OCR 和媒体标注。所有输入仅接受图像或视频文件。


快速参考

能力命令
人脸比对python scripts/ekyc_api.py face_compare --photo1 --photo2
照片活体检测python scripts/ekyc_api.py photo_liveness_detect --file
视频活体检测python scripts/ekyc_api.py video_liveness_detect --file
身份证 OCRpython scripts/ekyc_api.py id_card_ocr --image --side <01>
银行卡 OCRpython scripts/ekyc_api.py bank_card_ocr --image
驾驶证 OCRpython scripts/ekyc_api.py driver_license_ocr --image
行驶证 OCRpython scripts/ekyc_api.py vehicle_license_ocr --image --side <12>
媒体标注python scripts/ekyc_api.py media_labeling --file --labels "A14,B03" --type image

外部端点

端点能力发送的数据
https://kyc1.qcloud.com2, 3, 4, 5(活体、身份证/银行卡 OCR)Base64 编码的图像/视频 + 签名请求
https://miniprogram-kyc.tencentcloudapi.com1, 6, 7(人脸比对、驾驶证/行驶证 OCR)Base64 编码的图像 + 签名请求
https://kyc2.qcloud.com8(媒体标注)Base64 编码的图像/视频 + 签名请求
不传输任何个人文本数据(姓名、身份证号码)。仅发送图像/视频二进制数据。


安全与隐私

本软件不存储、缓存或保留任何提交的数据。API 验证结果仅供参考,不构成法律身份确认。本软件不得用作产生法律效力或对个人产生重大影响的自动化决策的唯一依据。用户应为高风险身份决策实施适当的业务逻辑和人工审核流程。


信任声明

安装并使用本技能后,您提供的图像和视频数据将被传输到腾讯云身份验证 API 进行处理。仅在信任上游服务提供商的数据处理实践时才安装本技能。本技能不独立存储、处理或保留任何生物识别数据。


目标

接收用户上传的图像或视频,调用相应的身份验证 API,以结构化结果返回并用通俗语言向用户解释。


使用场景

在用户请求涉及以下场景时使用本技能:

  • 「比较这两张照片」/「同一个人?」/「人脸相似度分数」
  • 「这张照片是 AI 生成的吗?」/「这个视频是真的吗?」/「深度伪造检测」
  • 「读取身份证」/「读取银行卡号」/「读取驾驶证」/「读取行驶证」
  • 「检查口罩」/「检测胁迫」/「戴帽子了吗?」/「在打电话吗?」
  • 「昏迷或睡着?」/「戴太阳镜?」/「在车内?」
  • 「在酒店房间?」/「有纹身?」/「多人?」/「戴耳机?」
  • 「面部面膜?」/「危重病人?」/「在汽车经销商处?」
  • 任何包含「人脸比对」、「活体检测」、「OCR」、「媒体标注」、「ekyc」的请求

不使用场景

以下情况不要使用本技能:

  • 用户仅询问「什么是 KYC」或「eKYC 如何工作」→ 直接从知识库回答
  • 用户以文本形式提供姓名、身份证号码、电话号码 → 拒绝并重定向(见下方隐私规则)
  • 用户想要人脸活体 + 身份验证组合(需要传输姓名 + 身份证号码)→ 解释隐私限制

关键规则

规则 1:隐私 — 永不接受个人文本

永不接受或传输姓名、身份证号码、电话号码或任何个人文本数据。 如果用户提供此类信息,请回复:

「为保护您的隐私,本服务不接受姓名、身份证号码或其他个人文本。通过 AI 对话传输敏感信息存在泄露风险。请直接上传图像或视频文件 — 我将通过图像识别完成验证。」

规则 2:永不重写签名代码

始终使用 scripts/ 中的 Python 签名算法使用 SHA1(生成 40 字符大写十六进制)。之前的 AI 模型用 SHA1 替换为 SHA256(64 字符),导致 100% 认证失败。脚本包含断言:assert len(signature) == 40。如果看到 64 字符签名,说明误用了 SHA256 — 停止并使用提供的脚本。

规则 3:双路径响应解析

API 响应可能在顶层返回数据,也可能嵌套在 result 对象中。始终检查两者:

value = data.get("field") or (data.get("result", {}) or {}).get("field")

跳过双路径解析会导致 None / undefined 错误。


环境变量

# 能力 1-7(人脸比对、活体检测、证件 OCR)
KYC_APPID=your_kyc_appid
KYC_SECRET=your_kyc_secret
# 能力 8(媒体标注,单独凭证集)
LABEL_APPID=your_label_appid
LABEL_SECRET=your_label_secret

获取凭证:

  • 密钥 A(KYC)和密钥 B(LABEL):联系慧眼技术支持(微信:blue-201809)
  • 或在 腾讯云人脸核身控制台 注册以获取密钥 A

⚠️ 重要:使用测试凭证(免费 100 次调用)。不要使用生产凭证 — 生产 ID 会产生上游提供商计费。

支持部分配置:仅密钥 A 启用能力 1-7。仅密钥 B 启用能力 8。当用户请求未配置的能力时,明确指出缺少哪些凭证以及如何获取。


8 项能力

能力 1:人脸比对

  • 触发:「比较这两张照片」、「同一个人?」、「人脸相似度」
  • 用户提供:包含人脸的两张照片
  • 如果用户仅上传一张:请「请上传第二张照片用于比对」
  • 执行python scripts/ekyc_api.py face_compare --photo1 --photo2
  • 返回:similarity(分数 0-100)
  • 结果解读
- ≥80:高置信度匹配 — 可判定为同一人(误接受率约 1/10,000) - 70-79:可判定为同一人(误接受率约 1/1,000);阈值可根据业务场景调整 - <70:不建议判定为同一人;建议更清晰的照片重新比对
  • 回复示例:「两张照片的相似度为 95.7(满分 100),高置信度匹配 — 可判定为同一人。」

能力 2:照片活体检测

  • 触发:「这张照片是真的吗?」、「AI 生成?」、「PS 过?」
  • 用户提供:包含人脸的一张照片
  • 执行python scripts/ekyc_api.py photo_liveness_detect --file
  • 返回:riskLevel(风险等级)、riskTag(风险标签编号)
  • 结果解读
- 等级 1:无攻击风险 — 真实照片,未检测到伪造 - 等级 2:中等怀疑 — 存在可疑特征,建议用不同照片重新检测 - 等级 3:高度怀疑 — 照片可能是伪造/AI 生成,建议拒绝
  • 风险标签含义(回复中包含):
- 01=闭眼 / 02=动作未完成 / 03=疑似重放攻击 / 04=疑似合成攻击 - 05=疑似欺诈模板 / 06=疑似水印 / 07=反光检测失败 / 08=多人脸 - 09=人脸质量差 / 10=距离检测失败 / 11=疑似对抗攻击 / 12=疑似人脸攻击痕迹
  • 回复示例:「检测结果:风险等级 3(高度怀疑),风险标签 04(疑似合成攻击)。此照片可能是 AI 合成的 — 不建议用于身份验证。」

能力 3:视频活体检测

  • 触发:「这个视频是真的吗?」、「深度伪造?」、「视频活体」
  • 用户提供:包含人脸的视频(≤20MB;超过 20 秒的视频将返回错误)
  • 如果视频太大:提示「视频必须 ≤20MB。请压缩后重新上传」
  • 执行python scripts/ekyc_api.py video_liveness_detect --file
  • 网络重试:视频上传可能遇到 999999 网络错误。脚本自动重试最多 3 次,指数退避。如果 3 次都失败,告诉用户「网络暂时繁忙,请几分钟后重试」
  • 返回与解读:同能力 2
  • 回复示例:「视频检测结果:风险等级 1(无攻击风险)。此视频是真实的 — 未检测到深度伪造或合成痕迹。」

能力 4:身份证 OCR

  • 触发:「读取身份证」、「提取身份证信息」
  • 用户提供:身份证照片 + 证件面标识
- 0 = 人像面(正面,有照片) - 1 = 国徽面(背面,有签发机关和有效期)
  • 如果用户未指定面:询问「这是人像面(正面有照片)还是国徽面(背面有国徽)?」
  • 执行python scripts/ekyc_api.py id_card_ocr --image --side <0|1>
  • 返回
- 人像面(side=0):name、sex、nation(民族)、birth、idcard(身份证号)、address - 国徽面(side=1):authority(签发机关)、validDate(有效期)
  • 结果解读:将返回的字段整理成清晰的列表给用户
  • 回复示例(人像面):「身份证识别结果:姓名:李明,性别:男,民族:汉,出生:1992-06-20,身份证号:440305199206***,地址:广东省深圳市南山区科技路 88 号。」
  • 回复示例(国徽面):「身份证识别结果:签发机关:深圳市公安局,有效期:2015.03.20–2035.03.20。」

能力 5:银行卡 OCR

  • 触发:「读取银行卡」、「卡号」、「银行卡 OCR」
  • 用户提供:银行卡正面照片
  • 执行python scripts/ekyc_api.py bank_card_ocr --image
  • 返回:bankcardNo(卡号)、bankcardValidDate(有效期)
  • 结果解读:显示卡号和有效期。如果有效期为空,卡面未打印有效期
  • 回复示例:「银行卡识别结果:卡号 6222 0200 000,有效期:08/28。」

能力 6:驾驶证 OCR

  • 触发:「读取驾驶证」、「驾驶证信息」
  • 用户提供:驾驶证照片
  • ⚠️ 仅支持主页:如果用户提交的是副页(背面),API 返回错误 -9005。回复:「驾驶证 OCR 仅支持主页(正面)。请重新上传正面。」
  • 执行python scripts/ekyc_api.py driver_license_ocr --image
  • 返回:licenseNo、name、sex、nationality、address、birth、fetchDate、driveClass、validDateFrom、validDateTo
  • 结果解读:整理成清晰列表;突出显示准驾车型和有效期
  • 回复示例:「驾驶证识别结果:证号:440305199206200013,姓名:李明,准驾车型:C1,有效期:2020-05-28 至 2026-05-28。」

能力 7:行驶证 OCR

  • 触发:「读取行驶证」、「车辆信息」
  • 用户提供:行驶证照片 + 证件面标识
- 1 = 主页(基本车辆信息) - 2 = 副页(载客人数、检验记录等)
  • 如果用户未指定:询问「这是主页还是副页?」
  • 执行python scripts/ekyc_api.py vehicle_license_ocr --image --side <1|2>
  • 返回
- 主页(side=1):plateNo、vehicleType、owner、model、vin、engineNo、registeDate、issueDate - 副页(side=2):额外返回 authorizedCarryCapacity、authorizedLoadQuality、fileNumber、total、inspectionRecord、externalDimensions、curbWeight
  • 结果解读:整理成清晰列表。主页:突出显示车牌号和车架号。副页:突出显示载客人数和检验记录
  • 回复示例:「行驶证识别结果:车牌:粤 B88888,车型:小轿车,车主:李明,车架号:LGWEE6K58RH000001,发动机号:DKZ000001,注册日期:2022-03-15。」

能力 8:媒体标注

  • 触发:「检查口罩」、「检测胁迫」、「戴帽子?」、「在打电话?」、「在车内?」、「多人?」、「纹身?」、「酒店房间?」、「媒体标注」
  • 用户提供:图像或视频 + 属性描述(根据用户描述自动映射到标签代码)
  • 标签参考表(根据用户描述自动选择):

人像标签:检测用户状态和风险

代码标签描述使用场景
A10昏迷/入睡闭眼或强制睁眼安全监控、风险预警
A09受胁迫检测到胁迫姿势反欺诈、安全预警
A15危重病人危重状态患者贷款欺诈预防、合规
A11打电话用户正在通话通话场景、第三方指导
A04戴耳机检测到耳机通话场景、第三方指导
A05裸露敏感身体部位暴露合规审查
A13纹身检测到纹身特征标记、风险分析
A02口罩遮脸医用口罩遮挡面部身份检测、合规
A14戴帽子检测到帽子遮挡检测、伪装
A01面部面膜贴敷面膜护肤或遮挡检测
A06戴太阳镜检测到太阳镜遮挡检测、合规
环境标签:检测业务场景

代码标签描述使用场景
B02多人画面中有多人群体场景、第三方指导
B03在乘用车内在轿车、SUV 等车内汽车贷款、出行、合规
B06在酒店在酒店房间内场景审查、风险控制
B07在汽车经销商处在汽车经销商处消费金融、合规
  • 每次请求最多 5 个标签代码
  • 执行python scripts/ekyc_api.py media_labeling --file --labels "A02,A14" --type image
- type:照片用 image,视频用 video
  • 异步处理:此 API 是 2 步异步操作(提交 → 等待 → 查询)。脚本自动处理。通常 5-10 秒返回结果
  • 返回:fileLabel(标签结果数组)、liveStatus(活体状态)、compareStatus(人脸比对状态)
  • 结果解读
- fileLabel 每个标签的值:1=检测到,0=未检测到,空=识别错误(建议重试) - liveStatus:1=活体,0=非活体 - compareStatus:1=人脸匹配,0=人脸不匹配
  • 回复示例
  媒体标注结果:
  - A14 (戴帽子):✅ 检测到
  - A02 (口罩遮脸):❌ 未检测到
  活体状态:活体
  

完整示例

正面:用户请求人脸比对

用户:「这两张照片是同一个人吗?」+ [上传照片 A] + [上传照片 B]

您的操作

  • 确认收到两张照片
  • 执行 python scripts/ekyc_api.py face_compare --photo1 PhotoA --photo2 PhotoB
  • 收到:{"success": true, "similarity": "95.7", "orderNo": "ekyc..."}
  • 回复:「两张照片的相似度为 95.7(满分 100),高置信度匹配 — 可判定为同一人。」

负面:用户提供个人文本

用户:「验证李明,身份证号 440305199206200013,与这张照片对比」+ [上传照片]

您的操作

  • 检测到提供的姓名和身份证号码 → 触发隐私规则
  • 不要执行任何 API 调用
  • 回复:「为保护您的隐私,本服务不接受姓名或身份证号码文本。请直接上传两张人脸照片 — 我将通过图像比对判断是否为同一人。」

完成定义

每次 API 调用后,验证所有条件已满足:

  • [ ] API 返回 code=0(成功)
  • [ ] 原始数据已转换为用户友好的自然语言
  • [ ] 包含结果解读(不仅是数字 — 解释其含义)
  • [ ] 如果发生错误(code≠0),已告知用户原因和建议操作
  • [ ] 对话中未暴露 API 密钥、orderNo 或其他技术细节(除非用户要求)

错误处理

发生错误时,用用户友好的语言解释并提供建议操作:

常见错误代码(所有能力)

错误代码用户面向消息
1101 / 1102「认证失败 — API 凭证可能配置错误。请检查 .env 文件中的密钥。」
1103「当前 IP 未在白名单中。请联系您的管理员。」
1106「无效请求。请检查您的请求格式。」
1107「无效请求参数。请验证所有必填字段。」
1502「版本参数无效。请使用版本 1.0.0。」
1503「文件校验和错误。请重试上传。」
1505「无权访问此资源。请检查您的 appid 授权。」
1506 / 1507「请求过多。请等待 10 秒后重试。」
1601「请求体过大。请减小文件大小。」
1602「请求体参数错误。请检查您的请求格式。」
999999 / 999998 / 999997「网络暂时繁忙,自动重试中...(如果 3 次重试均失败,请让用户稍后重试)」

人脸与活体错误代码(能力 1-3)

错误代码用户面向消息
66660016「图像或视频文件异常。请重新拍摄或使用其他文件。」
66660023 / 66660048「未检测到合适的人脸。请正对摄像头,保持清晰正面视角。」
66660037「检测到多人脸。请使用只有一张人脸的照片。」
66660041「人脸被遮挡或闭眼。请用清晰的照片重试。」
66660078「未检测到人脸。请确保照片有清晰正面人脸,光线良好。」
1603「无效视频文件。请检查视频格式后重试。」
1606「响应解密失败。请重试。」
1607「查询结果未找到。验证订单可能已过期。」
FailedOperation.CoveredFace「人脸被遮挡。请提交无遮挡的人脸照片。」
FailedOperation.IncompleteFace「检测到不完整人脸。请提交完整人脸照片。」
FailedOperation.PoorImageQuality「图像质量太差。请检查照片质量。」
FailedOperation.ImageDecodeFailed「图像解码失败。文件可能已损坏。」
FailedOperation.VideoDecodeFailed「视频解码失败。请检查视频格式。」
FailedOperation.VideoDurationExceeded「视频过长 — 最长支持 20 秒。请剪辑后重新上传。」
FailedOperation.DetectEngineSystemError「检测引擎错误。请重试。」
FailedOperation.UnKnown「内部错误。请重试或联系支持。」

OCR 错误代码(能力 4-7)

错误代码用户面向消息
-1102「图像解码失败 — 文件可能已损坏。请重新拍摄或使用其他照片。」
-1300「图像为空。请上传有效的图像文件。」
-1301「缺少必填参数。请检查您的请求。」
-1304「参数值过长。请检查输入长度限制。」
-9001「无效请求类型。请检查 side/type 参数。」
-9002「OCR 识别失败 — 照片可能不够清晰。请在光线良好时重新拍摄。」
-9005「无效图像或不支持的图像类型。驾驶证仅支持主页(正面)。」
-9006「图像预处理失败。请尝试其他照片。」
66661001「不是身份证或图像不够清晰。请验证文档类型,确保照片清晰完整。」
66661013 / 66661005「请调整角度,确保文档清晰完整。」

媒体标注错误代码(能力 8)

错误代码用户面向消息
66660000「无效订单号。请检查 orderNo 参数。」
66660001「无效 appId。请验证您的凭证。」
66660002「请求已过期。请重新生成签名并重试。」
66660003「试用配额已超限。请升级您的计划或联系支持。」
66660004「并发请求限制已达。请稍等后重试。」
66660013「无效请求参数。请检查您的请求格式。」
66660016「图像或视频文件异常。请重新拍摄或使用其他文件。」
66661014「媒体标注结果未找到。订单可能已过期 — 请重新提交。」
66661015「媒体标注仍在处理中,请稍候...(脚本自动重试)」
66661016「每次请求标签过多(最多 5 个)。请减少标签数量后重试。」
66661018「部分标签代码不存在或尚未可用。」
66661019「未提供标签。请至少指定一个标签代码。」
66661020「标签代码格式无效。使用格式如 A01、B03。」
66661021「您的 appId 未获得此服务授权。请联系支持。」
66661022「媒体标注处理失败。请重新提交请求。」
66661023「图像预检失败。请确保图像符合质量要求。」
1104「认证签名已过期或无效。请重试 — 系统将自动刷新。」
400101「缺少必填参数。请检查请求格式。」
400103「参数值无效。请验证标签代码和输入格式。」
400105「Appid 与凭证集不匹配。请检查您的密钥 A/密钥 B 配置。」
400106「签名验证失败。请确保使用正确的凭证集。」
400501「文件上传失败。请检查文件后重试。」
400502「不支持的文件格式。请使用 JPG、PNG 或 MP4。」
400505「文件处理超时。请使用较小的文件重试。」
400506「文件内容为空或损坏。请重新上传。」
400601「服务暂时不可用。请稍后重试。」
400602「服务配额已超限。请联系支持增加配额。」
对于未列出的错误代码:「意外错误(代码:XXX,消息:XXX)。请联系技术支持。」


认证架构

能力 1-7(KYC 认证)— 3 步

步骤 1: GET access_token ← app_id + secret
步骤 2: GET SIGN ticket ← app_id + access_token
步骤 3: Signature = sort([appId, orderNo, nonce, "1.0.0", ticket]) → concat → SHA1 → 40-char 大写

实现:scripts/kyc_auth.py不要重写,直接调用

能力 8(标签认证)— 2 步

步骤 1: GET ticket 直接 ← appId + secret(无 access_token 步骤)
步骤 2: Signature = sort([appId, orderNo, nonce, "1.0.0", ticket, unixTimeStamp]) → concat → SHA1 → 40-char 大写

关键区别:6 个参数(增加 unixTimeStamp),ticket 直接获取无需 access_token。

实现:scripts/label_auth.py不要重写,直接调用*


法律声明

本软件不存储、缓存或保留任何提交的数据。API 验证结果仅供参考,不构成法律身份确认。本软件不得用作产生法律效力或对个人产生重大影响的自动化决策的唯一依据。用户应为高风险身份决策实施适当的业务逻辑和人工审核流程。


速率限制

  • 能力 1-7(KYC):每个 appid 100 次调用(测试配额)
  • 能力 8(媒体标注):并发受限,默认 1 个并发请求;联系技术支持扩容
数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务