公开身份与数据最小化

评论可以用具名访客、匿名访客、署名账户或登录后的匿名方式发布。公开显示为“匿名”的账户评论,内部仍会与账户关联,以处理所有权、审核和滥用问题;这里的匿名仅指普通公开读者看不到身份。

账户和评论身份仅使用文字。本网站不显示或保留头像、登录服务商头像或用户上传的身份图片。公开响应不会暴露电子邮件、会话 ID、网络标识符、服务商令牌、审核元数据、匿名评论的内部账户 ID,以及访客密钥的秘密值或摘要。

访客密钥、本地存储与恢复

访客编辑密钥是持有者凭证:任何拥有完整密钥的人都能控制对应评论。浏览器生成定位符和 256 位秘密值;服务器只保存定位符和秘密值的 SHA-256 摘要,因此网站无法还原丢失的秘密值。请对密钥保密,不要保存在共享设备上。

首次 POST 前,浏览器会把原始密钥、创建幂等 ID 和内容 ID 持久暂存在浏览器本地存储中,不会在那里复制评论正文。提交得到确认或恢复后,浏览器会把密钥提升到已保存的评论映射。这样即使响应丢失或标签页崩溃也能保留所有权。你可以在访客密钥页面删除已保存或待处理密钥,或清除本站的浏览器存储。

单独保存的完整密钥无需评论 ID 即可找回对应的待审核、已批准或已拒绝评论,但前提是评论和凭证仍在保留期内。如果浏览器副本和另存副本都丢失,运营者无法恢复。

滥用防护、访客 Cookie 与 Turnstile

匿名写入路由可能设置随机的第一方 HttpOnly __Host-visitor_id Cookie,最长 30 天。它只用于粗粒度滥用防护,不用于分析、公开身份、所有权或广告,站点 JavaScript 也无法读取。

系统会根据 Cloudflare 为当前请求提供的网络地址,临时派生一个用途隔离的限流值。原始地址和派生的限流密钥不会作为普通应用数据存储或记录。如确实需要更长期的应用滥用摘要,它会与所有权凭证分开,通常在 30 天后到期。

访客写入、举报和密钥恢复可能需要 Cloudflare Turnstile。浏览器会发送挑战结果供服务器验证;Turnstile 独立于访客 Cookie,也不会授予所有权。Cloudflare 会依照其自身服务条款与隐私规范处理挑战及网络、浏览器信号。

审核、删除与举报

访客评论通常先审核再公开。编辑已批准评论后,评论可能重新进入审核。已拒绝评论可以编辑后重新提交;标记为垃圾内容的评论不能编辑,但所有者仍可删除。删除后公开正文会立即消失;如回复树结构需要,可能只保留最小删除占位。

举报会保存结构化原因,并可包含可选的自由文本详情。访客举报需要 Turnstile;已登录举报仍受限流。只有获授权的管理操作能访问举报和审核数据。自由文本注释会早于结构化审计记录进行最小化,也不得用来不必要地复制评论正文。

保留期限

即使定时物理清理尚未运行,系统也会在读取时执行到期限制。有效的所有者编辑可能刷新不活跃窗口,但绝对上限和硬性到期不会重新开始。只有明确说明时,才可设置经过复核且有期限的安全或隐私事件保留。

  • 普通历史或已删除正文:14 天。已受保护的垃圾内容证据仅可保留到原本更晚的期限;删除不会重启期限。
  • 已完成的创建幂等协议记录:24 小时。已撤销的访客凭证验证值:14 天。
  • 从未公开的待审核正文:不活跃 30 天,自创建起绝对上限 180 天。
  • 曾公开、现待复审的正文:不活跃 90 天,该隐藏阶段绝对上限 180 天。
  • 已拒绝隐藏正文:通常自拒绝起 30 天,且不延长既有绝对上限。垃圾内容证据:自垃圾判定起 30 天,所有者无法刷新。
  • 已解决或驳回举报:关闭后 90 天。开放举报的结构化流程记录在确实开放时保留,但自由文本详情在没有有期限且经审计的事件保留时,会于 365 天后最小化。
  • 已存储的应用滥用标识符:通常 30 天。审核审计:完整元数据保留 90 天后最小化,通常总计 365 天后删除。

账户、会话与关联登录服务商

Better Auth 在本站数据库中管理账户、关联服务商、会话、验证和限流记录。GitHub 与 Google 登录只请求已配置的最小权限范围。相同邮箱不会自动关联;关联和解除关联必须明确操作,并且至少保留一种登录方式。服务商账户信息和令牌不会复制到评论记录中。

账户需要保存 OAuth 令牌时,Better Auth 会加密令牌。会话使用安全的第一方 Cookie、来源与 CSRF 检查,并仅使用 Cloudflare 提供的客户端 IP 地址进行账户安全、会话和认证限流;不会信任任意转发的 IP 请求头。认证会话 IP 数据不会复制到评论、分析、审核日志或普通应用日志,并遵循 Better Auth 的会话和账户生命周期。

公开账户身份仅限经过验证的文字显示名,本站不使用服务商头像。登录服务商可能按其自身隐私条款另行处理登录活动。

账户删除

删除账户需要足够近期且经过验证的会话,并通过可重试流程执行。处理中,署名评论会安全地显示为“已删除用户”,匿名账户评论仍显示为“匿名”,新的账户所有权变更和关联会被阻止。除非你另行删除评论,否则已批准的技术讨论会保留。

该流程会删除 Better Auth 账户和关联服务商状态,解除应用记录中的内部账户 ID,并清除不再需要的显示数据。最小协调记录不含服务商令牌或评论正文;完成后会清除其中的用户 ID,记录通常于 30 天后到期。系统会先写入最小恢复日志事件,防止旧恢复副本悄然重建账户。

备份、恢复日志与还原

产生有意义的动态生产数据后,D1 导出会每日复制到同一 Cloudflare 账户中的私有备份 R2 存储桶。每日副本最多保留 90 天,并保留 12 个每月还原点。由于这是同一账户内的辅助副本,它无法防范所有 Cloudflare 账户级故障。

灾难恢复副本中的数据可能在实时应用已不可见后仍物理存在,直到备份轮换将该副本移除;它们不是普通管理员可读的历史。恢复后的数据库会在正常使用前立即执行逻辑到期和清理。

独立的最小恢复日志会记录评论删除、管理员删除和账户删除意图,但不含正文、姓名、电子邮件、访客秘密值、服务商令牌或会话令牌。提升恢复副本前会重放这些意图,防止旧副本悄然复活已删除数据。缺少或损坏必要日志覆盖时,恢复副本不得提升。

每次还原都会使恢复出的 Better Auth 会话及临时验证或 OAuth 状态失效,因此必须重新登录。未删除账户所需的加密关联账户/服务商状态可以保留;已记入日志的删除账户会在提升前删除或解除关联。