安全常见问题
OpenDev 集成的安全最佳实践与常见问题。
认证安全
Q:用户凭证如何存储?
A: OpenDev 遵循行业最佳实践:
- 密码:不直接存储,由 OAuth 提供商处理
- Token:使用 AES-256-GCM 加密存储
- 敏感数据:传输与存储均加密(TLS 1.3)
- 密钥:存于环境变量,不写进代码
Q:支持哪些认证方式?
A:
| 方式 | 用途 | 安全等级 |
|---|---|---|
| OAuth 2.0 | 社交登录 | 高 |
| JWT | API 认证 | 高 |
| Session Token | Web 应用 | 高 |
| API Key | 服务间调用 | 中高 |
Q:Token 有效期多久?
A:
- Access token:1 小时(可配置)
- Refresh token:30 天
- Session token:24 小时(可配置)
- API Key:直到主动撤销
Q:如何保护 API Key?
A:
- 勿在客户端暴露,仅服务端使用
- 使用环境变量(如
.env) - 定期轮换
- 最小权限原则
- 监控异常使用
数据安全
Q:数据是否加密?
A: 是,多层加密:
- 传输:TLS 1.3
- 存储:AES-256 加密敏感数据
- 数据库:Token、凭据等字段加密
- 备份:加密存储
Q:OpenDev 收集哪些数据?
A: 最小化收集:
| 数据类型 | 用途 | 保留期 |
|---|---|---|
| 用户 ID | 认证 | 账户生命周期 |
| 邮箱 | 账户恢复 | 账户生命周期 |
| OAuth Token | API 访问 | 至过期 |
| 审计日志 | 安全监控 | 90 天 |
Q:如何符合 GDPR/隐私法规?
A: 支持:数据导出、删除权、同意管理、数据最小化、泄露通知流程等。
支付安全
Q:支付数据如何保护?
A: 符合 PCI DSS,卡号不经服务器;使用 Stripe 等托管支付;Webhook 验签;审计日志。
Q:如何防止支付欺诈?
A: 启用 3D Secure、验证 Webhook 签名、异常监控、实现幂等性。