Security
安全说明
这份说明概括 Billbook 当前采用的安全策略,以及你在部署和使用时应当注意的边界。
1. 认证与会话策略
账号登录使用同域 HttpOnly Cookie 维持会话,前端不会把敏感 session token 保存在可直接读取的位置。页面刷新后通过 /api/me 恢复身份,以减少本地暴露面。
发送验证码与登录前会执行 Turnstile 人机验证。后端会根据当前认证规则校验 turnstileToken,并对异常调用返回明确错误码。
2. 部署隔离
前端页面以静态导出为主,认证逻辑通过 Cloudflare Pages Functions 提供,能够在部署结构上将展示层与身份接口拆开,降低额外的运行时复杂度。
同域部署有助于统一 Cookie 策略、减少跨域配置错误,并让会话恢复、退出登录与账号注销保持一致行为。
3. 本地数据边界
对象、交易、分类、长期消费设置、界面主题等账本内容默认保存在浏览器本地空间中。退出登录不会强制清空这些内容,因此共享设备场景需要用户自行做好清理。
如果你在多台设备上使用同一账号,每台设备的本地账本仍可能保持独立副本。请结合导出与备份流程做迁移,而不要把登录账号误认为自动数据同步。
4. 建议的上线基线
建议只在 HTTPS 域名下部署正式环境,确保 Cloudflare Pages 域名、Turnstile Site Key、认证 Cookie 和 Pages Functions 路由保持一致配置。
上线前建议至少验证注册、登录、刷新恢复、退出登录、账号注销、验证码频控、错误提示和本地导出流程,确保产品表现与用户预期一致。
5. 安全事件处理
如果你怀疑账号遭到未授权访问,应尽快修改密码、终止当前会话,并检查本地设备是否仍保留敏感账本数据。
如果你自行部署本产品,建议同步检查 Cloudflare 项目配置、环境变量、日志、速率限制与数据库访问策略,尽量把风险限制在最小范围内。
