📦 Quiz Maker — 测验制作器

v1.0.0

出题工具。根据文档(docx、pdf、txt 等)生成选择题试卷,并返回二维码供扫码答题。触发词:出题、生成题目、创建测验、云端出题。

0· 37·0 当前·0 累计
下载技能包
最后更新
2026/4/22
0
安全扫描
VirusTotal
可疑
查看报告
OpenClaw
可疑
medium confidence
该技能声称的功能(从文档生成测验并返回二维码)看似合理,但包内包含服务器/部署代码、硬编码的云 IP 地址,以及运行时指令假定直接运行本地脚本而无任何安装步骤——这些不一致之处,加上会安装系统级 root 服务的部署脚本,令人担忧,使用前需进一步审查。
评估建议
安装或运行本包任何内容前的要点: - 该 skill 会(按 SKILL.md)将提取的文档文本发送至外部服务器 118.196.5.240:34100。若文档含敏感数据,在未确认运营方、隐私政策及留存做法前请勿上传。 - 包内带 deploy 脚本,会安装系统服务并以 root 身份运行服务器。除非你信任代码及服务所有者,否则勿以 root 运行 deploy/deploy.sh——先逐行审阅 server.js、upload-handler.js 与 quiz-create.js。 - SKILL.md 期望本地节点脚本位于 ~/.openclaw/quiz-maker/quiz-create.js,但包未提供安装说明;此不一致可疑。请询问发布者客户端应如何安装,以及为何捆绑服务器代码。 - parser.js 在 PPTX 解析失败时,用 child_process.execSync 配合 shell 管道作回退。若运行捆绑服务器,请检查上传文件名与路径的校验方式,防止命令注入。 - 建议: 1) 为云端端点获取可验证的域名及运营方联系方式; ...
详细分析 ▾
用途与能力
名称/描述:从文档生成选择题测验并交付二维码 —— SKILL.md 在 118.196.5.240:34100 处明确写着“使用云服务”。该功能确实需要将文档文本发送到服务。然而,包内还包含完整的服务器代码(server.js、upload-handler.js、db.js、deploy/deploy.sh 等),却没有安装规范,且 SKILL.md 期望本地助手位于 ~/.openclaw/quiz-maker/quiz-create.js。对于一个仅客户端指令技能,附带服务器 + 部署脚本过于冗余,并造成应运行远程服务、本地客户端,还是安装捆绑服务器的歧义。
指令范围
SKILL.md 指示代理/用户先本地提取文本(python docx/PyPDF2 示例),再运行 node 脚本(node ~/.openclaw/quiz-maker/quiz-create.js "<内容>" "<标题>" "<说明>")。该 node 脚本会调用云服务(文档中写有云端 IP)。流程要求读取任意本地文档,并将其全文发送至外部托管服务(118.196.5.240:34100)。说明中未提供本地脚本安装步骤,未说明传输内容,也未警告上传完整文档可能带来的隐私风险。parser.js 使用 child_process.execSync 执行 shell 命令(strings | grep | head)作为 PPTX 解析的兜底方案;若文件路径或输入未正确过滤,可能存在命令注入风险。
安装机制
注册表元数据与 SKILL.md 均未声明 install spec,但仓库内存在 deploy/deploy.sh,该脚本会安装 Node.js、nginx、certbot,创建 /opt/quiz-maker,写入 systemd unit,并将服务配置为 User=root。若执行此部署脚本,将对系统做出持久性更改并以 root 身份运行服务——这是调用远程 API 所不必要的高权限操作。云主机使用裸 IP(118.196.5.240:34100)而非知名发布主机或域名,使用数字 IP 风险更高且难以验证。
凭证需求
该技能未请求环境变量或凭据(requires.env 为空),这对面向 API 的测验生成器是合适的。然而,该包会将本地文档内容上传至第三方服务器(硬编码 IP)——即使无需密钥——因此传输数据的隐私/敏感性存在风险。虽未请求任何机密,但远程端点及附带的服务器/部署脚本扩大了攻击面。
持久化与权限
该技能的元数据并未强制“始终”包含,但代码库中却带有一个部署脚本,它会配置一个以 root 身份运行的常驻 systemd 服务(User=root)。一旦操作员执行 deploy/deploy.sh,打包的应用就能获得长期驻留系统且拥有高权限。对于一个仅提供指令的技能来说,存在此类脚本既不合比例,也极具风险。
parser.js:73
检测到 Shell 命令执行(child_process)。
安全有层次,运行前请审查代码。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/4/22

首次发布

可疑

安装命令

点击复制
官方npx clawhub@latest install quiz-maker
镜像加速npx clawhub@latest install quiz-maker --registry https://cn.longxiaskill.com

技能文档

默认行为

使用云端服务出题,返回二维码图片。

调用流程

1. 提取文档内容

``bash # docx python3 -c " from docx import Document doc = Document('文件路径.docx') for p in doc.paragraphs: if p.text.strip(): print(p.text) for t in doc.tables: for row in t.rows: print(' | '.join(c.text.strip() for c in row.cells)) " # pdf python3 -c " import PyPDF2 reader = PyPDF2.PdfReader('文件路径.pdf') for page in reader.pages: t = page.extract_text() if t and t.strip(): print(t.strip()) " `

2. 调用云端 API 出题

`bash node ~/.openclaw/quiz-maker/quiz-create.js "<内容>" "<标题>" "<说明>" `

3. 提取二维码并保存

`bash # 从输出 JSON 中提取 qrImage 字段 base64,保存为 PNG python3 -c " import sys, base64, json r = json.loads(sys.stdin.read()) b64 = r['qrImage'].replace('data:image/png;base64,', '') open('输出路径.png', 'wb').write(base64.b64decode(b64)) " `

4. 验证后发送

`bash file 输出路径.png # 确认为 PNG 再发送 `

注意事项

  • 云端服务地址:https://118.196.5.240:34100
  • 内容最少需要 50 字
  • 二维码直接展示给用户即可

教训(踩坑记录)

  • 不要自己发明 API 路径create-with-qr 返回的 JSON 里已有 qrImage(base64 PNG),直接用这个字段,不要另调 /api/quiz/:id/qr 等不存在的接口
  • 先验证文件类型:保存后用 file` 命令确认是真正的 PNG 再发送
数据来源ClawHub ↗ · 中文优化:龙虾技能库