Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

唯品会图片搜索

v1.0.1

唯品会(vip.com)图片搜索商品技能。当用户想通过图片搜索相似商品时触发,包括但不限于:以图搜图、拍照搜商品、图片搜索、找同款等。返回商品名称、价格、品牌、图片、链接等结构化信息。

0· 75·0 current·0 all-time
by@vip

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for vip/vipshop-img-product.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "唯品会图片搜索" (vip/vipshop-img-product) from ClawHub.
Skill page: https://clawhub.ai/vip/vipshop-img-product
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install vipshop-img-product

ClawHub CLI

Package manager switcher

npx clawhub@latest install vipshop-img-product
Security Scan
Capability signals
Requires sensitive credentials
These labels describe what authority the skill may exercise. They are separate from suspicious or malicious moderation verdicts.
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
技能名与描述(唯品会图片搜索)和脚本实际行为总体匹配:上传图片、调用唯品会图片分类和商品检索接口并返回结构化结果。但脚本还会读取用户的登录态文件 (~/.vipshop-user-login/tokens.json) 并用其中的 PASSPORT_ACCESS_TOKEN 生成带签名的 exchange 链接,这超出了描述中未明确声明的本地凭证访问细节。生成 exchange 链接使用了代码内硬编码的 secret,虽然可解释为为了生成跳转链接,但硬编码密钥/token 处理值得注意。
!
Instruction Scope
SKILL.md 明确要求检测并读取 ~/.vipshop-user-login/tokens.json,未登录则自动触发另一个 skill 登录;并强制“必须完整展示”脚本返回的所有数据。由于脚本生成的商品链接包含对用户 token 的 base64 编码(dt 参数),以及脚本会输出“原始数据”,强制完整展示可能把敏感登录信息间接暴露给用户会话或被复制/转发,造成凭证泄露风险。
Install Mechanism
这是一个 instruction-only 技能(无安装规范),包含 Python 脚本并要求以 python3 运行。没有下载外部二进制或运行不明来源的安装步骤,磁盘写入行为仅限于读取/解析本地 token 与图片文件,风险相对较低。
!
Credentials
metadata 未声明任何环境变量或配置路径,但 SKILL.md 和脚本均明确依赖并读取特定本地路径 (~/.vipshop-user-login/tokens.json)。此外脚本内有硬编码的 API_KEY 和一个 hard-coded secret(用于 HMAC 签名)。请求访问本地 tokens.json 并把 token 用于生成对外链接,与技能元数据不一致,且未向用户明确说明将如何使用/保护这些凭证。
Persistence & Privilege
技能没有设置 always:true,也没有声明修改其他技能或系统设置。它会在检测到未登录时自动触发 vipshop-user-login skill(SKILL.md 要求),但这是技能描述的一部分且与功能相关。单独的自主调用未构成额外权限问题,但与读取本地 token 的组合增加了风险范围。
What to consider before installing
要点与建议: 1) 该技能会读取你主目录下的 ~/.vipshop-user-login/tokens.json 并使用其中的 PASSPORT_ACCESS_TOKEN(mars_cid)去调用唯品会接口以及生成带签名的 exchange 链接(链接参数 dt 包含 base64 的 token)。但安装元数据没有声明对此本地文件或凭证的需求——这是不一致的。 2) 展示策略风险:SKILL.md 要求“必须完整展示”脚本返回的所有数据,可能导致包含 token 的链接或其它敏感字段被显示/复制/外发,从而泄露凭证。 3) 代码中有硬编码的 secret 与 API_KEY:这会增加滥用风险(若代码泄露或被篡改,攻击面扩大)。 安装前的建议操作: - 仅在完全信任技能作者且了解脚本源码的情况下安装并运行;如果不信任,拒绝安装或在隔离环境(受限容器或临时用户)中测试。 - 审查 ~/.vipshop-user-login/tokens.json 的内容与权限,确认其中不包含其它复用凭证;考虑使用仅用于此用途的低权限/测试账号。 - 如果你必须使用,最好在隔离环境中运行脚本并避免将输出(尤其是包含商品链接的原始 JSON)公开或粘贴到不受信任的位置。 - 考虑要求作者/维护者:把硬编码 secret 和 API_KEY 改为可配置且不暴露在代码中,并在 SKILL.md 中明确列出对本地 token 的必要性与使用/保护策略。 总体结论:功能与“图片搜索”目的大体一致,但因未声明的本地凭证访问、硬编码密钥与强制完整展示返回数据的规则导致敏感信息被泄露的可能性,建议在信任源或采取缓解措施前不要在主账户环境中直接启用。

Like a lobster shell, security has layers — review code before you run it.

latestvk9731p3958tw06tzm15th153w1856btv
75downloads
0stars
2versions
Updated 1w ago
v1.0.1
MIT-0

唯品会图片搜索商品

⚠️ 重要规范:AI 必须先加载本 skill 规范(use_skill),再执行任何脚本或返回结果,不得绕过 skill 规范自行处理数据。

概述

唯品会(vip.com)图片搜索商品技能。当用户想通过图片搜索相似商品时触发,包括但不限于:以图搜图、拍照搜商品、图片搜索、找同款等。返回商品名称、价格、品牌、图片、链接等结构化信息。

功能特性:本地图片上传、智能分类识别、相似商品搜索、结构化输出

重要提示:需要用户先通过 vipshop-user-login skill 登录唯品会账户。

使用场景

  • 用户想通过本地图片搜索相似商品时
  • 用户想找同款商品时
  • 用户上传本地图片询问商品信息时
  • 拍照搜商品时

触发示例

用户输入以下内容可触发本 skill:

  • "帮我用这张图片搜索相似商品"
  • "以图搜图"
  • "这个图片帮我找同款"
  • "帮我搜一下这张图片里的商品"
  • "拍照搜商品"
  • "上传图片搜索"
  • "找同款"
  • "图片搜商品"

工作流程

步骤 1:检测登录状态

在执行搜索前,AI 必须先检测登录状态:

  • 检查 ~/.vipshop-user-login/tokens.json 是否存在且有效
  • 如果已登录:直接执行步骤2
  • 如果未登录:自动触发 vipshop-user-login skill 完成登录流程

步骤 2:接收输入

需要用户提供本地图片文件路径。

步骤 3:执行脚本

首次搜索(使用本地图片文件)

python3 scripts/img_search.py --image /path/to/image.jpg

获取下一页 用户回复"下一页"时,AI 应缓存图片URL、分类类型、检测区域,并使用上一次请求返回的 pageToken 直接调用第3步接口:

python3 scripts/img_search.py --image-url "图片URL" --category-type "分类类型" --rect "检测区域" --page-token "上一次返回的pageToken"

分页参数说明

  • --image-url:首次搜索返回的 图片URL 字段
  • --category-type:首次搜索返回的 识别分类.类型 字段
  • --rect:首次搜索返回的 识别分类.检测区域 字段
  • --page-token:上一次请求返回的 商品分析.下一页token 字段

支持的图片格式:jpg、jpeg、png、gif、bmp、webp

步骤 4:展示结果

解析 JSON 数据并格式化输出,展示搜索结果。

⚠️ 重要规则

  • 必须完整展示 Python 脚本返回的所有数据,不得对数据进行截断、省略或选择性隐藏
  • 显示字段:商品ID、商品名称、品牌、特卖价、划线价、折扣、卖点、图片、商品链接
  • 如果返回了多条商品记录,必须全部展示,不能只展示前几条

输出格式

{
  "code": 1,
  "msg": "success",
  "图片URL": "/xupload.vip.com/xxx.jpg",
  "识别分类": {
    "类型": "UPPERBODY",
    "名称": "上装",
    "检测区域": "109,306,548,768",
    "所有分类": [...]
  },
  "商品分析": {
    "总计": 10,
    "下一页token": "xxx",
    "商品列表": [
      {
        "商品ID": "xxx",
        "商品名称": "商品名称",
        "品牌": "品牌名",
        "特卖价": "99.00",
        "划线价": "199.00",
        "折扣": "5折",
        "卖点": ["卖点1", "卖点2"],
        "图片": "https://...",
        "商品链接": "https://passport.vip.com/exchangeTokenFromApp?..."
      }
    ]
  },
  "原始数据": {...}
}

字段说明

  • 特卖价price.salePrice
  • 划线价price.marketPrice
  • 折扣price.saleDiscount
  • 卖点:从 labels 字段提取所有 value
  • 下一页token:用于分页,有值时可通过 --page-token 参数获取下一页

输出格式示例

用户展示格式:

🔍 图片搜索结果

📸 图片分类:上装

| 序号 | 商品图片 | 商品名 | 品牌 | 特卖价 | 划线价 | 折扣 | 卖点 |
|:---:|:---:|:---|:---|:---:|:---:|:---:|:---|
| 1 | ![商品图](图片URL) | [耐克运动T恤](商品链接) | 耐克 | ¥99.00 | ¥199.00 | 5折 | 透气舒适、运动休闲 |
| 2 | ![商品图](图片URL) | [商品名称](商品链接) | 品牌 | ¥XX.XX | ¥XX.XX | X折 | 卖点1、卖点2 |
| ... |

💡 可回复"查询第X个商品"查看任意商品详细信息!
📄 想看更多商品?可以回复"下一页"查看

商品名超链接说明

  • 商品名必须使用 Markdown 链接格式:[商品名](商品链接)
  • 商品链接从脚本返回的 商品链接 字段获取

示例

示例 1:通过本地图片搜索商品

用户输入: "帮我用这张图片搜索相似商品 /path/to/image.jpg"

执行: python3 scripts/img_search.py --image /path/to/image.jpg

输出:

{
  "code": 1,
  "msg": "success",
  "识别分类": {...},
  "商品分析": {...}
}

示例 2:未登录

用户输入: "帮我搜索图片"

执行: python3 scripts/img_search.py --image /path/to/image.jpg

输出:

{
  "code": -1,
  "msg": "login_required",
  "message": "需要登录唯品会账户",
  "action": "请先登录唯品会账户后再使用图片搜索"
}

AI 行为规范

未登录处理

当检测到用户未登录时,AI 必须

  1. 立即自动触发登录流程
  2. 登录成功后自动继续执行搜索

禁止行为

  • ❌ 不要只返回错误信息让用户自己处理
  • ❌ 不要等待用户再次请求登录
  • ❌ 不要使用 原始数据 字段进行二次整理展示

正确行为

  • ✅ 检测到未登录时立即自动触发登录流程
  • ✅ 登录成功后自动继续执行搜索
  • ✅ 严格按照 Python 脚本返回的 商品分析 字段内容进行展示

实现要求

脚本位置

scripts/img_search.py(使用 Python 标准库,无外部依赖)

图片验证

  • 检查文件是否存在
  • 检查文件格式是否支持

接口调用

  1. 图片上传接口

    • URL: https://mapi-file-tx.vip.com/xupload/picture/new_upload_inner_applet.jsps
    • 方式: POST (multipart/form-data)
    • 参数: app_name, client, source_app, api_key, app_version, mobile_platform, union_mark, mobile_channel, mars_cid, warehouse, fdc_area_id, province_id, wap_consumer, picture(文件)
  2. 分类识别接口

    • URL: https://mapi-pc.vip.com/vips-mobile/rest/shopping/skill/search/img/category/v1
    • 方式: GET
    • 参数: api_key, app_name, app_version, client, imgUrl, mars_cid 等
  3. 商品搜索接口

    • URL: https://mapi-pc.vip.com/vips-mobile/rest/shopping/skill/image/product/list/v1
    • 方式: POST
    • 参数: api_key, app_name, categoryType, imgUrl, rect, mars_cid, pageToken(可选,用于分页), limit(固定为10) 等

注意事项

  1. 登录要求:必须先通过 vipshop-user-login skill 登录
  2. 图片格式:仅支持 jpg、jpeg、png、gif、bmp、webp 格式
  3. 网络要求:需要正常网络连接
  4. 依赖库:仅 Python 标准库(urllib、json、os)

技术细节

  • 实现语言:Python 3
  • 数据格式:JSON(脚本输出)→ 格式化文本(AI 展示)
  • 编码支持:UTF-8,支持中文
  • 异常处理:完整的网络异常和 API 错误处理
  • 依赖库:仅使用 Python 标准库

常见问题

Q: 支持哪些图片格式? A: 支持 jpg、jpeg、png、gif、bmp、webp 格式。

Q: 需要登录才能使用吗? A: 是的,必须先通过 vipshop-user-login skill 登录。

Q: 搜索结果有多少个商品? A: 每页返回最多10个相似商品,可通过 pageToken 获取更多。

Q: 如何获取更多商品? A: 使用返回的 下一页token,通过 --page-token 参数获取下一页数据。

Q: 支持直接传入图片URL吗? A: 不支持,仅支持本地图片文件上传方式。

Comments

Loading comments...