安全
最后更新:2026 年 3 月 16 日
1. 安全承诺
sh0 高度重视安全。我们实施行业领先的实践来保护您的数据、账户和已部署应用免受未经授权的访问、修改和泄露。
2. 架构安全
2.1 网络安全
- TLS 1.3: 所有传输中数据使用最新标准加密
- HSTS: 已启用 HTTP 严格传输安全
- CORS: 跨域资源共享安全配置
- WAF: Web 应用防火墙防止攻击
- DDoS 保护: Cloudflare DDoS 缓解
- 限速: API 限速以防止滥用
2.2 基础设施安全
- 提供商: Contabo 和 Hetzner(ISO 27001 认证)
- 防火墙: 已配置硬件和软件防火墙
- 网络分段: 不同服务使用独立网络
- 容器隔离: 每个部署运行在自己的隔离容器中
- 备份系统: 隔离、加密备份,可配置保留策略
3. 认证 & 授权
3.1 密码安全
- 哈希: 所有密码使用 Argon2 加盐哈希
- 最低要求: 8 个以上字符,混合大小写,数字/符号
- 密码重置: 安全的基于令牌的密码重置(1 小时过期)
- 不存储: 我们从不存储明文密码
3.2 双因素认证 (2FA)
- TOTP: 基于时间的一次性密码(Google Authenticator、Authy)
- 备份码: 用于账户恢复的恢复码
- 推荐: 所有用户可用,管理员访问必须启用
3.3 会话管理
- JWT 令牌: 已签名,24 小时过期
- 刷新令牌: 安全的刷新令牌轮换
- 会话超时: 30 分钟不活动后自动登出
- 并发会话: 限制以防止未授权访问
- 安全 Cookie: HttpOnly、Secure、SameSite 标志
4. 数据加密
4.1 传输中
- 协议: TLS 1.3(最低要求)
- 证书: 通过 Caddy 自动 SSL(Let's Encrypt / ZeroSSL)
- 完全前向保密: 已启用(临时密钥)
4.2 静态
- 算法: AES-256-GCM 加密
- 密钥: 所有密钥、API 密钥和环境变量均加密
- 数据库: SQLite 存储全盘加密
- 密钥管理: 密钥使用 ring 加密库与数据分开存储
4.3 加密密钥
- 密钥生成: 密码学安全随机生成
- 密钥轮换: 长期密钥年度轮换
- 访问控制: 仅限授权系统访问
5. 应用安全
5.1 代码安全
- OWASP Top 10: 针对所有常见漏洞的缓解措施
- 输入验证: 对所有输入进行严格验证
- SQL 注入: 通过 rusqlite 使用参数化查询
- XSS 防护: 已启用内容安全策略 (CSP)
- CSRF 保护: 所有状态变更请求使用 CSRF 令牌
5.2 依赖管理
- 漏洞扫描: 使用 cargo-audit 扫描 Rust 依赖漏洞
- 版本锁定: 生产使用锁定版本 (Cargo.lock)
- 供应链安全: 仅使用经过验证的包
5.3 错误处理
- 安全错误消息: 错误响应中不包含敏感信息
- 日志记录: 通过 tracing 安全记录错误,不暴露数据
- 堆栈跟踪: 在生产环境中隐藏
- 监控: 异常实时告警
6. API 安全
- API 密钥: 加密、有范围限制、可轮换
- 限速: 按用户、按 IP 限制
- 签名验证: HMAC-SHA256 用于 Webhook 真实性验证
- Bearer 令牌: 所有 API 调用使用 JWT 认证
7. 容器安全
- 非 Root 容器: 所有容器默认以非 root 用户运行
- 网络隔离: Docker 网络隔离不同技术栈
- 资源限制: 每个容器强制执行 CPU 和内存限制
- 镜像扫描: 基础镜像扫描已知漏洞
- 只读文件系统: 在适用情况下,容器使用只读根文件系统
8. 监控 & 日志
8.1 安全监控
- 告警: 可疑活动实时告警
- 事件响应: 关键事件 15 分钟响应时间
- 健康检查: 持续的容器和服务健康监控
8.2 审计日志
- 内容: 谁访问了什么、何时、从哪里、做了什么更改
- 保留期: 审计日志保留 1 年
- 不可变性: 日志创建后不可修改
- 加密: 日志在传输和存储时加密
9. 访问控制
- 最小权限原则: 用户仅拥有必要的访问权限
- 基于角色的访问控制: 管理员、成员和查看者角色
- MFA 必需: 所有管理员访问必须使用
- 访问日志: 所有管理员操作被记录
10. 反向代理安全
- Caddy: 自动 HTTPS,启用 OCSP 装订
- 证书管理: 自动续期,零停机轮换
- 安全头: X-Frame-Options、X-Content-Type-Options、Referrer-Policy
- HTTP/2 和 HTTP/3: 支持现代协议
11. 安全测试
11.1 定期测试
- SAST: 静态应用安全测试(clippy、cargo-audit)
- DAST: 动态应用安全测试(运行时分析)
- 渗透测试: 年度外部渗透测试
11.2 漏洞管理
- 披露计划: 负责任披露政策
- 响应时间: 关键级 = 24 小时,高级 = 7 天
- 补丁: 如需要,紧急补丁在数小时内部署
12. 事件响应
发生安全事件时:
- 检测 & 分析: 确定范围和严重性(1 小时)
- 遏制: 隔离受影响系统(4 小时)
- 调查: 确定根本原因和影响
- 通知: 通知受影响用户(最长 72 小时)
- 恢复: 恢复正常运营
- 事后处理: 审查并改进流程
13. 合规 & 认证
- GDPR: 合规(欧盟数据保护)
- CCPA: 合规(加利福尼亚隐私)
- SOC 2 Type II: 计划中
- ISO 27001: 计划中
14. 安全报告
发现了安全漏洞?
- Email: [email protected]
- 请勿: 请勿在我们获得 90 天修补时间之前公开披露
- 我们将: 24 小时内确认,定期提供更新
- 致谢: 安全研究人员将获得致谢(如有意愿)
15. 联系安全团队
- Email: [email protected]
- General: [email protected]