草稿 · 待法务审阅
本页是工作草稿,尚未经律师审阅,正式发布前会修改。它不构成法律意见。
隐私
最后更新 2026-11-06
这一页按字段列出站点实际处理的数据。它是照着代码写的,不是照着「听起来让人放心」写的。
一句话版本
- 没有账号,也从不索取姓名、电话、住址或证件。
- 没有我们自己的广告、社交或统计 cookie,也没有跨站追踪。
- 我们唯一可能持有的联系方式,是你在投稿或下架表单里主动填的那一个;别的地方我们从不索取。
- 投票按哈希存储,匿名 id 的明文只待在你的浏览器里。
我们存什么、为什么
站点没有登录。要让投票不被刷,就需要一个稳定的假名,所以第一次投票时浏览器会被发一个随机标识。
- gj_anon(匿名 id)——第一次投票时生成的随机 UUID,存在第一方 cookie 里:HttpOnly、SameSite=Lax、生产环境 secure,有效期两年。数据库只存 sha256(你的 id + 服务端盐),落在 votes.anon_hash。明文不会进入数据库。它的用途只有两个:(1) 让你能改投而不是重复投;(2) 降低滥用。
- IP 地址——每次请求读一次,只用于限流。我们只把 sha256(ip + 盐) 作为短期限流键存下来(投票是分钟级,投稿与下架表单最多两天),明文 IP 不写库。作为托管方的 Cloudflare 会像任何 Web 服务器一样看到请求。
- 投票——笑话 id、哈希后的匿名 id、投票值(funny / meh / confused)和时间戳。用来显示站上的计数。
- 匿名事件——我们自建了一张第一方匿名事件表,目前写入四类事件:page_view(页面浏览)、joke_view(阅读详情)、next_joke(点「再来一个」)、share(分享,含平台与分类)。只以匿名 id 的哈希为键,不存明文 IP,不做跨站画像。
- 投稿署名——如果你投稿并希望署名,你给的昵称会随笑话保存并公开展示。
- 投稿邮箱(选填)——如果你投稿时自愿留下邮箱,它会随投稿记录保存。用途:回复你、确认授权、下架联系。不用于营销,不会公开显示。计划保存期限:投稿处理结束后 12 个月,然后删除。自动清理上线之前,你随时来信,我们就删。
- 投稿 IP 哈希——投稿表单会把 sha256(ip + 盐) 随投稿一起保存,仅用于拦截重复垃圾投稿。明文 IP 从不存储。
- 授权留痕——你提交时,我们会记下你勾选了授权、勾选的时间、以及同意的是哪一版条款(当前为 terms-2026-11)。它是「我们可以发布这条内容」的凭据。
- 下架请求——如果你使用下架表单,我们会保存你给的链接、理由、联系方式和时间戳,用来处理请求并回复你。只有团队看得到。
Cookie 与本地存储
五项小状态,都不用于广告或跨站追踪。
- gj_anon——cookie,HttpOnly,SameSite=Lax,两年。让多次投票挂在同一个匿名 id 上,这样你能改投。页面上的 JavaScript 读不到它。
- gj_lang——cookie,一年,页面可读(语言切换要用)。记住你选了中文,首页就不再把你跳去 /zh。
- gj_theme——浏览器 localStorage,永不发往服务端。记住亮色 / 暗色 / 跟随系统。
- gj_sleep——浏览器 localStorage,永不发往服务端。记住睡前模式。
- 自建统计——页面会向本站数据库写匿名事件(浏览、阅读详情、下一条、分享),只以匿名 id 的哈希为键。统计以 30 分钟无活动切分「会话」;页面没有专门的统计 Cookie,统计关联复用上面的匿名 Cookie(gj_anon)。没有第三方统计、不做画像、不跨站收集。
第三方
- Cloudflare——托管、DNS/CDN 和 D1 数据库。所有请求都经过 Cloudflare,它按自己的隐私条款处理技术性请求数据。除了「把站跑起来所必需的」,我们不向它提供任何内容。
- Cloudflare Web Analytics(Cloudflare Insights)——托管方会注入 Cloudflare 自己的流量统计脚本,用来查看聚合访问量(当前线上页面即带有该脚本)。它是 Cloudflare 的产品,不是我们自建的埋点,我们也不用它做跨站画像。
- Cloudflare Turnstile——人机验证。只在投稿表单上使用,用来区分人和机器人;所有阅读页面都不加载它。
- GitHub Actions——构建与部署。构建日志里是代码,不是访客数据。
- 没有 Google Analytics,没有广告联盟,没有邮件营销平台,没有错误监控 SaaS。站点运行时会加载的外部脚本只有两个:Cloudflare 的统计脚本,以及投稿表单启用后加载的 Cloudflare Turnstile。
数据存在哪里
数据存在 Cloudflare D1,按我们的配置位于亚太区域。Cloudflare 是全球网络,请求和备份可能在其他地点被处理——这是平台本身的工作方式。
我们不出售、出租或交换个人数据。除上述处理方为运行站点而处理,或法律要求之外,我们不共享数据。
保存多久
- 限流键:投票是分钟级,投稿与下架表单最多两天。它们写入时就带过期时间,并被定期清理。
- 匿名事件(page_view / joke_view / next_joke / share):保留 90 天用于聚合统计,之后归档或删除;投票记录随站点存续保留,以便累计计数与历史有意义。
- 投稿邮箱:计划在处理结束后保存 12 个月,然后删除。自动清理上线前,你提出即删。
- 授权留痕:在笑话发布期间保留,作为授权凭据。
- 下架请求:在处理请求期间以及内部审计需要期间保留。目前没有自动删除;你随时可以要求删除你的联系方式。
- 投稿署名:随笑话公开期间保留,或直到你要求去掉署名。
- Cookie:gj_anon 两年,gj_lang 一年,或直到你清除。
你的权利
你可以要求我们展示、导出、更正或删除与你相关的数据。发邮件到 hello@globejoke.com,我们五个工作日内回复。
有一个必须说清楚的限制:投票按哈希存储,我们手上没有「邮箱 → 哈希」的对照表。只有你提供浏览器里的 gj_anon 值(开发者工具 → Application → Cookies),我们才能定位到你的投票记录;没有它,我们无法把你的记录和别人的区分开。如果你只是想让计数里不再有自己的痕迹,清掉 cookie 就够了:记录还在,但没有任何东西把它和你连起来。
即使我们本来有理由保留某条记录,只要法律没有要求为法律主张而保留,我们都会按删除请求删除。
未成年人
本网站不面向 14 岁以下儿童。如果你未满 14 岁,请不要提交个人信息;想投稿的话,请让父母或监护人联系我们。如果我们发现 14 岁以下儿童提交了个人数据,会删除它。
变更
这一页改动时,「最后更新」日期会跟着变。如果我们要开始收集新东西,会先写在这里,再开始收集。
联系
问题、请求与投诉: