Skill flagged — suspicious patterns detected
ClawHub Security flagged this skill as suspicious. Review the scan results before using.
AI机票预订助手
v1.0.0AI机票助手 - 实现国内航班搜索、舱位查询、预订下单、机票改期、机票退票。适用于用户询问航班、查询机票价格、提交机票订单、改期航班、退票时使用。
⭐ 1· 63·0 current·0 all-time
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
OpenClaw
Suspicious
medium confidencePurpose & Capability
技能名称/描述、脚本和运行时依赖(python3)在功能上匹配:所有脚本只实现航班搜索、舱位查询、下单、改期、退票等预期操作。默认 API 端点(app-gate.fenbeitong.com)和调用模式与机票服务相符。小问题:SKILL.md 没有声明技能会依赖的环境变量 FBT_API_URL,但代码支持通过该环境变量覆盖 API 地址(不影响主功能,但是一处文档/声明不一致)。
Instruction Scope
SKILL.md 明确说明会把乘客姓名、手机号、证件号等 PII 通过 HTTP POST 发送到外部服务(这是功能所需),但代码/运行方式有两个值得关注的点:1) 脚本会在标准输出打印乘客姓名/手机号/证件号(create_order.py 等),这可能被日志采集/审计系统捕获;2) 舱位/改期信息被写入临时文件(/tmp 或 tempfile.gettempdir()),这些文件可能对系统上其他进程可见且会包含可用于下单的细节。SKILL.md 同时警告“勿在日志或回复中暴露用户个人信息”,但脚本实现本身会输出这些信息 — 文档与实现不一致且增加隐私泄露风险。
Install Mechanism
这是 instruction-only 技能(无 install spec),不包含从网络下载或安装第三方包的步骤;脚本就是本地 Python 脚本,由 python3 运行。这降低了供应链风险。
Credentials
技能未在 registry 元数据声明任何必需的环境变量或凭据,主要认证通过运行时的手机号+验证码流程获取 apiKey(保存在本地文件)。不过代码会读取/允许覆盖 API 地址的环境变量 FBT_API_URL(未在文档元数据中声明),并通过本地持久化文件保存 apiKey。它不请求其他外部凭据, 所需权限与功能大体匹配,但应明确在元数据中声明 FBT_API_URL 的可配置性并说明 apiKey 的存放位置与安全性。
Persistence & Privilege
技能不会请求始终加载(always)或修改其他技能的配置;它将 apiKey 保存在本地文件(代码使用系统临时目录而非用户主目录 — 与 SKILL.md 描述不一致),并写入临时文件用于跨脚本传递舱位数据。没有跨技能或系统级别的持久特权请求,但临时文件/持久化文件的使用带来本地数据暴露风险,需要用户注意。
Scan Findings in Context
[ssl_unverified_context] unexpected: common.py 在 HTTP(S) 调用中使用 ssl._create_unverified_context()(两处:call_api 和 call_api_without_auth),并带有注释“生产环境应移除此行”。禁用证书验证会使网络调用易受中间人攻击;这不是该技能正常功能所必需且与安全最佳实践不符。
[pii_print_to_stdout] unexpected: 多个脚本(例如 create_order.py、endorse_apply.py、order_detail.py)将乘客姓名、手机号、证件号、订单详情等敏感信息打印到控制台。这与 SKILL.md 要求“请勿在日志或回复中暴露用户个人信息”冲突。
[auth_file_location_mismatch] unexpected: SKILL.md 声称 apiKey 会保存在用户主目录的 ~/.fbt_auth.json,而实现(common.get_auth_file_path)把 .fbt_auth.json 写入系统临时目录(tempfile.gettempdir()),导致文档与实现不一致(影响持久性与访问位置)。
What to consider before installing
简明建议:
- 功能与描述一致:此技能确实实现了航班搜索、舱位查询、下单、改期和退票逻辑;python3 即可运行。
- 隐私警告(重要):下单需要提交乘客姓名、手机号和证件号,并且脚本会把这些信息打印到控制台,并将部分中间数据写入系统临时目录(如 /tmp/flight_seat_items.json)。如果你在共享或受日志审计的环境中运行,敏感信息可能被记录或被其他进程读取。仅在你信任运行环境且同意把 PII 发送到外部服务时使用。
- 网络安全问题:脚本在发起 HTTPS 请求时禁用了证书验证(ssl._create_unverified_context),这会增加中间人攻击风险。若要投入生产使用,应移除该行或改为使用默认证书校验。
- 文档与实现不一致:SKILL.md 说 apiKey 存在用户主目录 (~/.fbt_auth.json),但代码把它写到系统临时目录。检查并决定你希望在哪里存放敏感凭据;如果需要长期持久化,请修改实现以存放到更合适且权限受限的位置(例如用户主目录并设置文件权限)。
- 环境变量说明:代码支持通过 FBT_API_URL 覆盖默认 API 地址,但这个环境变量没有在技能元数据中声明。若你需要使用自定义后端,请明确设置并确认后端可信度。
- 建议操作:在正式使用前,审阅/修改代码:删除或修复禁用证书验证的行;避免在控制台打印证件号/手机号/姓名(改为只打印部分掩码信息或不打印);或者把敏感持久化路径改为用户主目录并限制权限。若你不能或不愿自行审计源码,请只在受信任环境中使用或寻求来源 (发布者/主页) 以确认服务的可信度。Like a lobster shell, security has layers — review code before you run it.
latestvk97971fvj28p29z8jetq7gkdq983nekf
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
Runtime requirements
✈️ Clawdis
Binspython3
