数据驻留与安全事实

数据放在哪里、如何加密、谁能访问

本页只写代码与配置里能核实的事实,每条都标注出处。我们不在这里声称认证、固定地域或不可变日志——凡是代码没有保证的,就不写。

可核实的事实

出处是仓库中的文件路径。部署时的具体地域取决于当时的环境变量,不在代码里。

  • 数据库

    业务数据存放在 PostgreSQL。生产部署由 docker-compose 中的 db 服务承载,连接串来自 DATABASE_URL 环境变量,仓库不写死主机或地域。

    出处:docker-compose.yml (db service), .env.example (DATABASE_URL)

  • 文件存储

    上传文件默认存在本地(FILE_STORAGE_PROVIDER 缺省为 local)。切换到 S3 兼容存储时,桶、地域与密钥全部来自环境变量(S3_BUCKET、S3_REGION、S3_ACCESS_KEY_ID),代码不内置地域。

    出处:src/lib/s3-storage.ts (REQUIRED_KEYS, resolveFileStorageProvider)

  • 密码

    密码使用 bcrypt 哈希,盐轮数为 12。明文密码不入库。

    出处:src/lib/auth.ts (SALT_ROUNDS = 12, hashPassword)

  • 传输加密

    对外公布的传输加密标准为 TLS 1.2 及以上,写在数据处理协议模板中。

    出处:src/app/trust-center/dpa/page.tsx, src/app/legal/dpa/download/route.ts

  • 访问码

    生产环境不开放自助注册。注册必须提供管理员发放的访问码或组织邀请;未提供时接口返回 ACCESS_CODE_REQUIRED。访问码的创建与作废都会写入审计日志。

    出处:src/lib/registration-mode.ts (registrationMode), src/app/api/auth/register/route.ts, src/services/access-code-service.ts

  • 审计日志

    审计日志记录操作、对象、操作者、IP 哈希与时间(AuditLog 模型)。它不是不可变的:超过保留期的记录会被清理任务删除,用户清空本人数据时也会删除其名下的记录。

    出处:prisma/schema.prisma (model AuditLog), src/services/audit-service.ts (cleanup), src/app/api/user/clear-data/route.ts

本页故意不说的话

  • 不声称 SOC 2 或 ISO 27001 认证。
  • 不指定数据所在的城市或云区域——代码没有写死。
  • 不把审计日志称为不可变。保留期之后的记录会被删除。
  • 不把密码哈希写成 Argon2id。实现是 bcrypt,12 轮。

返回安全架构总览 · 子处理方清单

需要把这些事实放进采购审查?

采购说明包汇总了安全、服务等级与协议模板,并标明每项的证据状态。

Data Residency & Security Facts | CarbonBridge | 碳桥数据驻留 | CarbonBridge 碳桥