1. 概述
本页面介绍保护您在 Brainpercent(由 Brainpercent, LLC(美国特拉华州)运营)中数据的安全措施。我们只描述今天实际存在的措施。我们不声称拥有我们没有的认证。关于我们如何处理个人数据,请参阅我们的隐私政策和数据处理附录 (DPA)。
2. 加密
您的数据在每个阶段都经过加密:
- 静态加密: 数据库和文件存储采用 AES-256 加密(Supabase Postgres 和 Storage,托管于欧盟法兰克福区域)。
- 已连接账户令牌: 您已连接社交账户的 OAuth 令牌在应用层额外使用 AES-256-GCM 加密,每个密钥使用唯一的初始化向量和认证标签。
- 传输加密: 您的浏览器、我们的服务器和我们的服务提供商之间的所有连接均使用 TLS 1.2 或更高版本。
3. 访问控制
对您数据的访问在多个层面受到限制:
- 行级安全: Postgres 行级安全 (RLS) 在数据库层面将每个查询限定于您自己的用户,因此一个用户无法读取另一个用户的数据行。
- 角色分离: 数据库客户端按角色分离。在您浏览器中运行的客户端从不持有管理凭据;特权操作仅在服务器端运行。
- 加密的密钥: API 密钥和环境机密以加密形式存储在 Vercel 和 Supabase 中,从不提交到源代码控制。
4. 应用安全
应用程序及其集成经过加固:
- 安全响应头: 响应中设置了 HSTS 及其他安全响应头,以强制 HTTPS 并减少常见的 Web 攻击面。
- Webhook 签名验证: 传入的 Webhook(Stripe、Inngest)在任何处理之前都会根据其加密签名进行验证。
- 速率限制: 身份验证端点上的分布式速率限制可减缓撞库和暴力破解尝试。
5. 支付安全
支付卡数据完全由 Stripe 处理,Stripe 是通过 PCI-DSS 认证的支付处理商。卡号从不经过我们的服务器,我们也从不存储卡号。我们只存储 Stripe 提供的非敏感引用(例如客户 ID 和订阅 ID)。
6. 监控与事件响应
我们监控问题,并承诺在重要时刻通知您:
- 错误监控: 应用程序错误通过 Sentry 捕获和监控。
- 数据泄露通知: 如果数据泄露影响到您的个人数据,在法律要求的情况下(如 GDPR 第 33 条),我们将在 72 小时内通知受影响的用户和相关监管机构。
7. 当前局限性
我们宁可诚实,也不搞安全表演。以下是我们尚不具备的:
- 单人运营公司: Brainpercent 目前由一个人构建和运营。没有 7x24 安全团队,也没有多人职责分离。生产环境访问权限仅限于这一个人,这同时也将内部攻击面降到最低。
- SOC 2 / ISO 27001: 尚不可用。我们不声称拥有 SOC 2、ISO 27001 或任何我们没有的认证,也尚未完成第三方渗透测试。
8. 负责任的漏洞披露
如果您认为发现了安全漏洞,请发送邮件至 edward@brainpercent.com 主题为 "Security".
请附上复现步骤。请勿访问其他用户的数据、降低服务质量,或在我们有合理机会修复之前公开披露该问题。我们会阅读每一份报告,并力争在 72 小时内回复。