安全设计
CutDeck 在设计之初就将安全作为核心考量,保护用户的敏感数据和隐私。
API 密钥安全
存储层级
CutDeck 采用多层级密钥存储策略:
优先 → OS Keychain (系统级安全存储)
├── macOS: Keychain Services
├── Windows: Credential Manager
└── Linux: Secret Service API
降级 → 环境变量 (.env 文件,仅本地存储)安全最佳实践
⚠️ 重要
- 永远不要将 API Key 提交到 Git 仓库
.env文件已加入.gitignore,请勿移除- 生产环境建议使用环境变量而非硬编码
bash
# 安全检查:确认 .env 不会被提交
git check-ignore .env
# 应该输出: .env
# 如果没有输出,手动添加
echo ".env" >> .gitignore密钥访问控制
- API Key 仅在客户端本地使用,不会发送给第三方服务器
- 所有 AI 请求直接与 AI 服务商通信
- 不经过任何中转服务器
文件操作安全
路径安全
CutDeck 对所有文件路径进行严格验证:
| 检查项 | 说明 |
|---|---|
| 路径穿越检测 | 禁止 .. 等路径遍历攻击 |
| 危险路径禁止 | 禁止访问系统敏感目录 |
| 扩展名白名单 | 仅允许操作视频/音频/图片等合法文件类型 |
| 文件大小限制 | 单文件最大 50GB(可配置) |
命令执行安全
FFmpeg 白名单
CutDeck 仅允许执行经过白名单验证的 FFmpeg 命令:
typescript
// 允许的命令
const ALLOWED_COMMANDS = ['ffmpeg', 'ffprobe']
// 危险命令关键词检测
const BLOCKED_PATTERNS = [
'rm -rf',
'| sh',
'; sh',
'&& sh',
]数据隐私
本地处理优先
- 🎬 视频内容仅在本地处理
- 🤖 AI 分析时,视频片段会上传到 AI 服务商(使用他们的隐私政策)
- 📝 生成的字幕和脚本保存在本地
网络请求安全
- ✅ 所有 AI API 请求使用 HTTPS
- ✅ 验证服务器证书
- ✅ 不发送敏感系统信息到第三方
漏洞报告
如果你发现安全漏洞,请通过以下方式私下报告:
| 方式 | 说明 |
|---|---|
| GitHub Security Advisory | 报告安全漏洞 |
请不要在公开的 GitHub Issues 中报告安全问题。