可信 — 风险评分 5/100
上次扫描:2 天前 重新扫描
5 /100
llc-phone
Low-latency inbound and outbound AI phone calls via the OpenAI Realtime API and Twilio
合法AI电话代理技能,代码质量高,权限声明与实际行为完全一致,无任何恶意或可疑指标。
技能名称llc-phone
分析耗时35.9s
引擎pi
可以安装
可直接使用。所有外部通信(Twilio/OpenAI/CalDAV/ClickSend/Webhook)均依赖配置的环境变量,代码逻辑透明。

安全发现 2 项

严重性 安全发现 位置
提示
dotenv重复初始化
server.ts和functionHandlers.ts各自独立导入dotenv并调用config(),不会造成安全问题,但属于冗余代码。
import dotenv from 'dotenv'; dotenv.config();
→ 可移除functionHandlers.ts中的dotenv导入,改为在server.ts统一初始化后导出配置
src/server.ts:3, src/functionHandlers.ts:1:1
提示
transcript webhook为可选配置
TRANSCRIPT_WEBHOOK_URL为空时完全跳过外发,完全由用户控制数据流向。
if (!WEBHOOK_URL) { console.log(`[HOOK:${source}] No TRANSCRIPT_WEBHOOK_URL configured — skipping`); return; }
→ 无需修改,行为正确
src/webhook.ts:33:33
资源类型声明权限推断权限状态证据
文件系统 READ READ ✓ 一致 src/server.ts:20 readFileSync读取twiml.xml模板
网络访问 WRITE WRITE ✓ 一致 所有外部请求均为声明的合法API(Twilio/OpenAI/CalDAV/ClickSend/Webhook)
命令执行 NONE NONE 无subprocess/spawn/exec调用
环境变量 READ READ ✓ 一致 仅读取process.env,凭证用于API认证不外传
剪贴板 NONE NONE 无剪贴板访问
浏览器 NONE NONE 无浏览器自动化
数据库 NONE NONE 无数据库访问,通过CalDAV存储日程
技能调用 NONE NONE 无跨skill调用
5 项发现
🔗
中危 外部 URL 外部 URL
https://platform.openai.com/docs/changelog
docs/08-known-issues.md:130
🔗
中危 外部 URL 外部 URL
https://community.openai.com
docs/08-known-issues.md:131
🔗
中危 外部 URL 外部 URL
https://your-caldav-server.example.com
src/functionHandlers.ts:7
🔗
中危 外部 URL 外部 URL
https://rest.clicksend.com/v3/sms/send
src/functionHandlers.ts:397
🔗
中危 外部 URL 外部 URL
https://api.twilio.com/2010-04-01/Accounts/$
src/functionHandlers.ts:424

目录结构

20 文件 · 124.5 KB · 3681 行
TypeScript 5f · 1968L Markdown 11f · 1643L JSON 3f · 62L XML 1f · 8L
├─ 📁 docs
│ ├─ 📝 01-overview.md Markdown 44L · 1.9 KB
│ ├─ 📝 02-session-config.md Markdown 177L · 5.0 KB
│ ├─ 📝 03-prewarm-outbound.md Markdown 237L · 7.4 KB
│ ├─ 📝 04-inbound-modes.md Markdown 274L · 9.1 KB
│ ├─ 📝 05-async-tools.md Markdown 146L · 5.1 KB
│ ├─ 📝 06-latency-tuning.md Markdown 103L · 3.5 KB
│ ├─ 📝 07-twilio-integration.md Markdown 114L · 3.5 KB
│ ├─ 📝 08-known-issues.md Markdown 132L · 3.8 KB
│ └─ 📝 09-openclaw-config.md Markdown 140L · 4.3 KB
├─ 📁 src
│ ├─ 📜 functionHandlers.ts TypeScript 564L · 19.3 KB
│ ├─ 📜 server.ts TypeScript 397L · 14.6 KB
│ ├─ 📜 sessionManager.ts TypeScript 929L · 32.8 KB
│ ├─ 📄 twiml.xml XML 8L · 187 B
│ ├─ 📜 types.ts TypeScript 31L · 614 B
│ └─ 📜 webhook.ts TypeScript 47L · 1.3 KB
├─ 📋 _meta.json JSON 5L · 128 B
├─ 📋 package.json JSON 39L · 974 B
├─ 📝 README.md Markdown 176L · 5.6 KB
├─ 📝 SKILL.md Markdown 100L · 4.9 KB
└─ 📋 tsconfig.json JSON 18L · 419 B

依赖分析 6 项

包名版本来源已知漏洞备注
express ^4.21.2 npm 稳定版本,无已知漏洞
ws ^8.18.0 npm 稳定版本
dotenv ^16.4.5 npm 仅本地配置读取
cors ^2.8.5 npm 中间件,权限受控
typescript ^5.5.4 npm 开发依赖
nodemon ^2.0.22 npm devDependencies,仅开发环境使用

安全亮点

✓ 代码结构清晰,TypeScript类型完整,易于安全审计
✓ 所有敏感凭证(Twilio/OpenAI/CalDAV/ClickSend)仅用于各自声明的API认证,无凭证外泄
✓ 无shell执行、无敏感路径遍历(~/.ssh等)、无eval/动态代码执行
✓ XML转义函数escapeXml防止TwiML注入
✓ WebSocket连接通过pathname白名单过滤(/call, /logs),非法路径直接关闭连接
✓ 凭证编码使用标准base64,符合Twilio/ClickSend API规范
✓ outboundCallContexts Map设置了10分钟TTL防止内存泄漏
✓ business hours强制检查(8:00-19:00)限制transfer_call可用时间
✓ prompt注入防护:instructions中的示例均为占位符("Replace with your company's..."),明确告知用户需自行配置