billy6go

“匿名”常被简单实现为缺少姓名字段。

这只是开始,却不是一种设计方法。一份调查可以省略姓名,但仍能通过账户、邀请令牌、IP 地址、Cookie、设备标识符、小团队或暴露性的自由文本将答案与特定人关联。

真正有用的工程问题应是:

此任务实际需要哪些身份路径?若移除其中任意一条,会发生什么?

以下是我们在构建短时调查工具 CandorKit 时使用的清单。

1. 先盘点数据路径,再编写表单

列出系统中所有可能进入、离开或持久化的值:

  • 调查标题与问题
  • 选项与自由文本答案
  • 时间戳
  • 账户或邀请标识符
  • 网络与设备元数据
  • 分析事件
  • 导出的文件与复制的摘要
  • 管理密钥

随后针对具体任务,将每项标记为“必需”“可选”或“禁止”。“框架默认收集”不等于需求。

CandorKit 的应用数据库仅存储调查文本、答案、时间戳、私有所有者密钥的哈希值以及过期时间戳。它不会将姓名、账户 ID、IP 地址、User-Agent 或 Cookie ID 附加到答案上。

这一表述比“无人能识别受访者”更为狭义。网络提供商仍会处理常规请求;问题措辞、小群体、独特事件或自由文本仍可能泄露身份,即使应用层未存储身份字段。

2. 分离受访者访问与所有者访问

公开的答题链接与私有的结果链接承担不同信任角色。若两者复用同一不记名链接,易造成意外泄露。

CandorKit 生成私有所有者密钥并置于 URL 片段中。浏览器不会在常规 HTTP 请求路径中发送片段,服务器仅存储其哈希值而非明文。

此设计有代价:无恢复流程。若所有者丢失私密链接,服务无法重建访问权限。该权衡应在分享调查前向用户可见,而非隐藏在支持文档中。

3. 为数据保留设置可执行边界

“不再需要时即删除数据”不是可操作的规则。

可执行规则需包含:

  1. 已知的过期时间戳;
  2. 过期后拒绝新的读写;
  3. 清理流程;
  4. 面向用户的明确表述;
  5. 对系统外副本的声明。

CandorKit 为每份调查设置七天的数据库过期时间,拒绝过期访问,并运行定时清理。CSV 导出、截图、复制的分析等下游文件不在自动删除边界内。

4. 分析数据与敏感内容隔离

分析事件应描述产品行为,而非调查内容。切勿将标题、问题、答案、所有者密钥或私密链接发送至会话回放或事件属性。

同一规则同样适用于日志与错误报告。若请求体或异常载荷仍复制敏感文本,仅靠界面遮掩是不够的。

5. 将问题设计纳入隐私模型

基础设施无法挽救一份要求受访者在自由文本中自我暴露的调查。

针对敏感反馈:

  • 避免索取姓名、精确位置、员工 ID 或不必要的人口统计信息;
  • 提醒受访者不要在自由文本中透露自己或他人身份;
  • 避免可将个人从小型群体中孤立出来的组合;
  • 在精确值对任务无额外价值时,选用多选或区间;
  • 不要将轻量匿名调查用于紧急事件、合规报告或受保护的举报。

实际结论是:匿名调查设计是减法。移除身份路径、缩短保留期、分离权限,并明确列出剩余限制。

CandorKit 正是该狭义模式的实践探针:https://candorkit.com/