跳转到内容

安全审计

请 AI 审查你的应用安全状况,遵循以下最佳实践,并将密钥保存在 Settings 页面。

Proyecta 的安全性由平台默认设置、AI 驱动的审查以及一些你应当养成的习惯共同保障。以下是相关思路。

打开 Command PaletteCmd+K / Ctrl+K),选择 Run Security Audit。这将向 AI 发送一个全面的安全提示,AI 会读取你的整个代码库,并按优先级列出漏洞发现及具体修复建议。

审计检查项包括:

  • 源文件中硬编码的 API 密钥、令牌或密码
  • VITE_ 为前缀、会将密钥泄露给客户端的环境变量
  • API endpoint 缺少服务端输入验证
  • 页面或 API endpoint 缺少身份认证
  • 未转义的用户内容(XSS 风险)
  • 依赖项漏洞
  • 混合内容或硬编码的 http:// URL
  • 缺少文件上传验证

你也可以在聊天中手动运行安全审计,或将范围缩小到特定区域:

  • "Review my checkout flow for security issues"
  • "Check the admin pages — who can access what?"
  • "Look at every endpoint that writes to the database and tell me if any of them are missing authorization"

保持密钥安全

  • 将所有 API 密钥、数据库凭据和第三方令牌存储在 Settings 页面的环境变量部分
  • 切勿将密钥粘贴到聊天消息中或提交到代码里
  • 如果密钥已泄露,请立即在第三方服务商处将其撤销,并创建新的密钥

限制访问权限

  • 在应用中实现基于角色的权限控制("Add admin and member roles. Only admins can access /admin pages."
  • 将敏感页面和 endpoint 限制为仅已认证用户可访问
  • 始终在服务端验证用户输入,而不仅仅依赖客户端验证

全面使用 HTTPS

  • 所有已发布的 Proyecta 应用均自动通过 HTTPS 提供服务
  • SSL 证书由平台自动配置和续期
  • 对于自定义域名,只要 DNS 正确指向,同样适用上述机制

保持依赖项更新

  • 定期向 AI 提问:"Check my dependencies for known security vulnerabilities and upgrade the vulnerable ones."
  • 仔细审查 AI 所做的变更——依赖项升级有时会包含破坏性改动

重大变更后重新审计

  • 在添加身份认证、支付、文件上传或任何涉及用户数据的功能后,重新运行审计
  • 在首次发布到生产环境之前,进行一次全面检查
  • 为你的 *.proyecta.live 子域名提供 HTTPS 和证书
  • 应用数据的存储位置 — 你的应用内容、记录和目录存储在 Proyecta 平台数据层(基于 Postgres),按组织隔离并加密存储。你发布的应用通过可公开密钥pk_pub_*)访问数据,该密钥可以安全地随页面下发:服务端会将匿名请求限制为仅访问已发布内容,管理员操作还需要具备相应角色的已登录会话。每个请求都会针对你的组织进行授权验证——一个应用永远无法读取另一个应用的数据。
  • 环境变量 — 密钥存储在专用的密钥存储库中,在适用的情况下同步到应用的 backend,且不会提交到代码库。注意:密钥对拥有项目访问权限的工作区成员可见。
  • 隔离的运行时 — 每个项目在独立的容器中运行,因此开发环境的问题不会影响其他用户
  • 在首次发布前运行审计 — 全面检查可在问题上线前将其发现。
  • 重大变更后重新运行 — 添加身份认证、支付或文件上传功能会引入新的攻击面。
  • 缩小审计范围 — 针对特定区域的审计比全应用扫描更快速、更彻底。