跳到正文

生效日期 2026年11月7日

隐私政策

孩子的照片,只用来做孩子的照片。这就是全部,本页其余部分都是细节。

TotShot 是一款在家给孩子拍证件照的手机应用,由 HakkApps, LLC(注册地:Delaware, USA)运营;本政策所述的一切,均以该公司为数据控制者。

本政策适用于 TotShot 应用和 totshot.app。本公司为自己的网站另行发布了一份政策,见 hakkapps.dev;两者互不替代。

1. TotShot 做什么

您选择国家和证件。应用加载该签发机构公布的证件要求,引导您拍摄,再把原图发送到我们的服务器;服务器按这些要求测量,返回一份可直接冲印的成品文件。

两件事发生在两个不同的地方,这个区别就是隐私的全部:检测人脸和引导拍摄都在您的手机上完成,离线运行,没有任何内容离开设备。测量拍摄结果、检查背景、生成最终文件,都在我们的服务器上完成。

2. 我们收集什么

  • 账户。一个邮箱地址;若使用 Apple 或 Google 登录,则是它们提供的标识符和邮箱地址——如果 Apple 给您的是私密转发地址,我们看到的就只有它。此外还有您阅读所用的语言。
  • 孩子。姓名,以及可选的昵称和出生日期。出生日期只做一件事:有些签发机构允许年龄较小的孩子闭眼,或放宽头部尺寸,应用需要知道您适用的是哪一条规则。
  • 照片。您拍下的原图、由它生成的预览图,以及成品文件。
  • 从照片中测得的数据。头部高度、眼睛位置、头顶留白、清晰度、曝光、我们所做的裁剪、判定结果,以及判定所依据的证件要求的具体版本。
  • 购买。您购买的是哪个额度套餐,以及 Apple 或 Google 出具的收据,我们凭它核验这笔购买。卡号从不会传到我们这里——购买在商店自己的购买页面内完成。
  • 通知。推送令牌,如果您开启了通知。
  • 您如何使用应用。记录一次拍摄各个步骤的具名事件——拍下照片、给出判定结果、购买额度套餐——每个事件带有数字和本次拍摄的标识。关于判定结果,其中只含是否通过:一次拍摄中有几张照片通过、几张未通过,以及您打开查看原因的那一张是否通过。其中永远不含照片,也不含从照片中测得的其他数据——没有头部高度、眼睛位置、头顶留白、清晰度、曝光或裁剪。
  • 广告标识符,用于我们自己的广告。在 Android 上,Google Analytics 会读取设备的广告 ID。在 iOS 上,只有当系统询问是否允许 TotShot 跟踪您的活动、而您选择允许时,它才会读取广告标识符(IDFA)。它只做一件事:我们在 Google Ads 或类似的广告网络投放 TotShot 时,这个网络可以把一次安装和带来这次安装的广告对应起来,我们由此知道自己的广告起了什么作用。您可以在设备设置里重置或删除这个标识符,在 iOS 上也可以拒绝那次询问;无论哪种选择,应用的表现完全一样。
  • 您大致在哪里。Google 会根据使用事件来源的 IP 地址,推算出城市一级的位置。设备本身从不向我们报告位置,应用也不申请任何位置权限。
  • 崩溃报告。应用出错时:错误本身、堆栈信息、设备型号和系统版本,以及出问题的那个账户的标识——这样,只发生在一个人身上的崩溃能查得到,而不必靠猜。
  • 服务器日志。和所有网络服务一样,为了安全和防止滥用,我们的服务器会记录每个请求:IP 地址、时间、请求的 URL、来源页面(如果请求带有的话)、用户代理(发出请求的应用或浏览器的名称和版本),以及已登录请求所属的账号。IP 地址可能属于个人数据,所以这里把它写出来,而不是略过。我们的日志存储会把这些记录保留 7 天;每台服务器在本地写下的副本有大小上限,会随着新记录写入而被覆盖。此外,我们还会抽取一小部分请求进行追踪,以便在各个服务之间跟踪一个缓慢或失败的请求;追踪记录包含 IP 地址、用户代理、URL 和账号,保留 3 天。本网站照片检查的请求是例外,下文该检查的一节写明了改为记录的内容。

没有别的了。TotShot 不索取住址,不索取电话号码,也不展示广告。上面的使用事件和崩溃报告,关联到一个每次安装随机生成的标识和您的账户。广告标识符是这里唯一会被广告网络看到的东西,而它的用途不超出衡量我们自己的广告。

3. 测得的是几何数据,不是人脸特征模板

我们从照片上取到的数字,用来裁剪照片,并对照公布的规则作出判定——头部在画面中有多高、眼睛在什么位置、头顶上方还剩多少空间。

我们从不用它们识别任何人。它们不是生物识别模板,从不与另一张照片或另一个人比对,我们也不对它们做任何形式的人脸识别。在应用里,来源照片一旦删除,它们随之删除。本网站的免费检查完全不保存照片,每次检查的数值最多保留 365 天;具体是哪些,见下文该检查的一节。

4. 儿童的数据,以及它为什么在这里

TotShot 由成年人代孩子使用。账户持有人须年满18周岁;孩子是被拍摄的人,不是应用的用户。

孩子的姓名、出生日期(如果您填了)和照片,只用于一个目的——制作并判定这张照片。它们绝不用于广告,绝不出售,绝不为他人的目的共享,也绝不用来训练任何模型。

5. 我们保存多久

TotShot 是相机,也是检查工具,不是相册。一切都会自行到期:

  • 上传后一直没有变成一次拍摄的原图——24小时。
  • 一次拍摄的原始文件和预览图,以及未购买照片的渲染结果——72小时。也正因如此,重新裁剪一张照片在三天内始终免费。
  • 您购买的照片——由您设定的保存期限:7、30、90 或 365天,也可以永久保存。默认为365天。随时可以在应用里更改,更改对已有的照片同样生效。

默认是一年,因为孩子的证件照往往不到一年就不能再用——孩子的模样已经变了。留得更久,对谁都没有意义。

应用里的照片消失时,从中测得的数据一并消失。照片删除后仍然留下的,只有收据:哪份证件、什么时候、是否符合要求、扣了哪个额度——因为您日后可能还要就一笔扣款提出疑问。收据在应用里任何地方都不显示。本网站的免费检查不保存照片,每次检查的记录最多保留 365 天,详见下文该检查的一节。

每次打开一张照片,下载链接都会重新生成,一小时后失效。我们存储里的内容不会公开列出,也无法公开访问。

备份。 我们每晚对数据库和照片存储做一次加密备份,只用于在故障后恢复。每份备份在 14 天后删除,因此您删除的照片或账户,在从 TotShot 消失之后,最多还会在备份中保留 14 天。解密备份的密钥不保存在我们的服务器上。

6. 删除账户

您可以在应用里删除账户,没有任何附加条件。照片、照片背后的原图、所有测得的数据、收据、孩子的资料、额度余额、推送令牌和拍摄记录,都会在曾经保存过它们的每一项服务中被彻底删除。不会留下任何标记来证明您曾经来过;某一处删除失败,会一直重试到确认为止,而不是悄悄搁下。

您的账户只会在我们每晚的加密备份中多留一段时间,这份备份会在 14 天内删除,详见上文。

未使用的额度随账户一起销毁,不予退款,所以请先把它们用掉,或者先来问我们。您也可以随时删除任意一张照片,或者写信到 support@totshot.app,我们替您删除。

7. 还有谁会接触到

我们不出售、不交换个人数据。它只会到达下面这些公司,每一家只为一件事:

  • Apple 和 Google——登录,以及购买额度。它们向我们确认一笔购买是真实的;关于您的孩子,我们什么都不告诉它们。您申请退款时,Apple 还可能来问这笔购买后来怎么样了——下一节讲的正是这件事。
  • Google(Firebase Cloud Messaging)——向您的设备投递推送通知,前提是您开启了通知。
  • Google(Firebase Analytics 和 Crashlytics)——统计上述使用事件,接收崩溃报告。我们靠它得知:某一步在那些从不来信的人那里出了问题。Google 按我们的指示处理这些数据,服务器在美国。
  • Google(Google Ads)——我们为 TotShot 投放广告时,Google 把上述广告标识符与它投放过的广告点击对应起来,再告诉我们一次安装来自哪个广告系列。这是对我们自己广告的衡量;您孩子的数据不参与其中。
  • Umami(Umami Software)——统计本网站的访问量,不使用 cookie。它收不到应用里的任何内容,也从不接触照片;它收到什么,见“本网站”一节。
  • Resend——发送账户邮件和支持邮件。
  • Cloudflare——与我们服务器之间的安全连接。应用和本网站的照片检查与 api.totshot.app 之间往来的一切内容都经过 Cloudflare:既包括它们发出的内容,也包括返回给它们的内容,其中包括应用下载的成品照片。Cloudflare 在其网络边缘解密这些内容,边缘与我们的服务器之间则通过加密隧道传输。内容经过期间,Cloudflare 在技术上能够看到其中的内容,包括照片。我们不用 Cloudflare 存储任何东西。
  • 我们的主机服务商——运行应用所连接的服务器。

照片的测量和处理都在我们自己的服务器上、在一个私有网络内完成。您孩子的照片从不发给任何第三方 AI 服务,也从不发给 Google:上面提到的分析和崩溃 SDK 只看得到事件名称、数字和标识符,看不到任何图像数据。应用里没有广告 SDK,也不展示广告;上面那个广告标识符由分析 SDK 读取,只用于已经说明的那一个目的。

8. 如果您向 Apple 申请退款

您通过 App Store 申请退款时,Apple 可能会问我们这笔购买后来怎么样了,并给我们一小段时间作答。我们会作答。这是我们唯一能说上话的时刻;无人作答的申请,会在我们缺席时被裁定。Google Play 没有对应的环节,因此在那里完成的购买与本节无关。

我们发送的是一份概要,不是记录:套餐用掉了多少、成品照片是否已经交付,以及您历来购买与退款的总额——给出的是一个区间,不是具体金额;只要有任何一笔购买使用了其他货币,连区间也不会给,因为说不准的美元数字,我们不会去估。这份概要只通过商店为该笔购买签发的令牌与这笔购买关联,此外不关联任何东西。

我们还会告诉 Apple,我们认为答案应该是什么,而您有权知道我们依据的规则,因为规则就这么多:额度一个没用,我们说应当同意退款;额度全部用完,我们说应当拒绝退款;用掉了一部分,我们不表态。我们不会为您从未用过的东西去请求 Apple 拒绝退款。

我们从不发送您的照片;除那个购买标识符之外,也不发送任何个人数据。Apple 还会问您持有账户多久、在应用里待了多久。这两个问题我们都回答“未声明”,而不是估一个数字——估出来的数字,往后就成了我们的断言。

9. 保存在哪里,怎么保存

我们的服务器位于欧盟,租用自一家商业主机服务商。我们写出的是地区,不是服务商:服务商可以更换,地区是承诺。照片和从照片中测得的数据都存储在那里,不存储在别处;唯一的例外是每张照片是否通过,上文所述的使用事件也会把这一点报告给 Google。

有五样东西会离开这个地区。使用事件和崩溃报告去往美国的 Google。推送通知经由 Google 和 Apple 转发。此外,应用或本网站的照片检查与我们服务器之间往来的一切内容,都会经过 Cloudflare 的网络——每个请求和每个响应,包括应用下载的成品照片。在您与我们之间传输时,Cloudflare 会在离您最近的数据中心解密这些内容,该数据中心可能位于欧盟以外,包括美国。本网站本身由美国公司 Vercel 提供服务,因此“本网站”一节所述的访问日志——每次页面请求(包括照片检查页面)的 IP 地址、时间和 User-Agent——也可能在欧盟以外处理。此外,本网站的访问计数器会把每次页面浏览和每次点按应用商店徽章发送给 Umami,其服务器位于美国和欧盟。这些传输都依据欧盟委员会的标准合同条款(SCC)进行,那正是这些公司为此专门公布的机制。除这五项之外,跨境的只有 Apple、Google 和 Resend 为完成“还有谁会接触到”一节所列工作所需的内容;照片以及从照片中测得的数据,只在经由 Cloudflare 传输时跨境——只有每张照片是否通过除外,它由使用事件带到 Google。

传输过程全程加密:您的设备与 Cloudflare 之间使用 TLS,Cloudflare 与我们服务器之间使用加密隧道。照片存放在私有存储里,内容从不公开列出,每一次下载都通过一条短时有效的签名链接。登录令牌保存在您设备自带的钥匙串或密钥库中。只有需要用到的服务才有访问权限。没有哪个系统是绝对安全的,我们不会假装不是这样。

10. 本网站

totshot.app 用 Umami 统计访问量,以便我们了解大家读了哪些页面、从哪里来:搜索引擎、社交网络,还是别人分享的链接。每次页面浏览,计数器会向 Umami 发送:页面地址(包括链接中携带的推广标记,例如 ?c=)、来源页面、浏览器语言、屏幕尺寸,以及 Umami 从 User-Agent 中读出的设备类型、操作系统和浏览器。点按 App Store 或 Google Play 徽章也以同样方式统计,并注明是哪个商店。Umami 用 IP 地址判断所在国家,并结合 User-Agent 计算出一个不可逆的代码来统计独立访客;它不保存 IP 地址本身。计数器不设置 cookie,也不在您的设备上存储任何内容,因此无法在其他网站上追踪您;如果您的浏览器发送“请勿追踪”(Do Not Track)信号,它根本不会运行。Umami 按我们的指示,在位于美国和欧盟的服务器上处理这些数据。本网站不投放广告,除这个计数器外也不加载任何第三方脚本、字体或图片——页面用到的其他所有文件都来自本域名。

网站本身由我们的网站主机 Vercel 提供服务,它会把每次请求的 IP 地址、时间和 User-Agent 记入访问日志,用于页面分发和防止滥用。除上文所述的 Umami 计数器外,这是参与向您展示本页面的唯一一家公司。

本网站只存一个 cookie:NEXT_LOCALE,用来记住您在用哪种语言阅读。里面没有任何标识符,没有别人会读它,它也不会跟着您去任何地方。

11. 本网站上的照片检查

在 totshot.app 上,您可以免费、无需账号地按某一证件的要求检查孩子的照片。在离开浏览器之前,照片会被缩小并重新编码,文件的元数据也随之去除——手机写入照片的拍摄地点从不会到达我们这里。在我们的服务器上,照片在内存中完成测量(包括我们的服务处理它时所用的临时缓冲区),结果发出后即被丢弃:它从不被保存——不写入任何文件、数据库或存储——除了返回给您的结果之外不用于任何用途。

我们保留的是不含图像的检查记录:证件及照片判定所依据的规则版本;孩子的月龄(如果您填写了);结果的语言;照片是否通过;发现的每个问题,及其测量值和允许范围;头顶、下巴和眼睛线所在的位置(以占画面的比例表示);头部角度;闭眼、张嘴和视线方向的评分;测量照片所用的检测器;检查用时;以及检查的时间。记录中没有图像,没有面部框,没有眼睛的坐标点,没有文件名,也没有 IP 地址。这些记录最多保留 365 天,用于调校应用判定所依据的阈值,以及统计有多少次检查最终点按了商店徽标。

  • Cloudflare 把照片送到我们的服务器,再把我们的结果送回给您,和与服务器往来的其他一切内容一样:两者都在其网络边缘解密,并在边缘与我们的服务器之间通过加密隧道传输,因此在照片和结果经过期间,Cloudflare 在技术上能够看到它们。我们不用它存储任何东西。
  • 频率限制用于保护服务。为了按连接统计发往检查的请求次数,我们的服务器会把您的网络地址转换成带密钥的哈希值——一种用秘密密钥算出的不可逆代码,密钥至少每天更换一次——并按这个代码计数;对于 IPv6 地址,只取其网络部分(前 64 位)。计数在 24 小时内过期,检查从不保存地址本身。
  • 我们的日志和追踪记录在记录照片检查的请求时,不包含您的 IP 地址,也不包含浏览器的用户代理(user agent)——这一点与上文所述的服务器日志不同。一次检查的日志记录包含:时间、请求的路径(点按徽标或应用链接时,其中含有该检查的标识)、响应状态和耗时、请求标识,以及检查结论:检查标识、证件、语言、是否通过、问题代码,以及上文所述记录中保存的头部、眼睛线、角度和表情的测量值,另外还有检测器对找到人脸的把握程度,以及它看到的其他人脸数量。被频率限制拒绝的请求,记录的是上文所述的带密钥哈希值,从不记录地址。这些日志记录和我们的其他日志一样,保留 7 天。
  • 如果您之后点按商店徽标或应用链接,我们会在该检查的标识下记录点按的是哪一个及其时间,仅此而已,以了解这次检查是否有用。徽标链接本身只会告诉商店:这次访问来自本网站的检查,以及针对哪种证件——商店正是这样统计一个链接带来的安装量;链接中从不包含检查标识。
  • 不需要账号。除上文所述的语言偏好外,检查不设置任何 cookie。“本网站”一节所述的访问计数器像统计其他页面一样统计检查页面,从不接触照片,也看不到检查结果。

照片上是一个孩子,上文关于儿童数据的一节完全适用:照片只用于您发送它的这一个目的,不用于其他任何用途,从不用于广告,从不用于训练任何模型,并且在结果发出的那一刻即被丢弃。

12. 您的权利

您可以要求获取数据副本、更正、导出或删除。删除您可以自己在应用里完成;其余事项请写信到 support@totshot.app。每一条请求都由真人回复。

在欧盟和英国,这些是《通用数据保护条例》(GDPR)赋予您的权利,您也可以向当地的数据保护机构投诉。在加利福尼亚州,按《加州消费者隐私法案》(CCPA)对这两个词的定义,我们既不出售也不共享个人信息;行使权利不需要您付出任何代价。

13. 变更

本页顶部的日期表示本政策最近一次修改的时间。如果某项变更会对我们处理您数据的方式产生重大影响,我们会在应用内或通过邮件告知您。

14. 联系我们

本页涉及的任何事——查阅、更正、导出、删除,或者一个在这里找不到答案的问题:support@totshot.app。这是找到我们最快的方式,来信由真人阅读。纸质信件可寄往下方地址。

15. 适用法律

本政策受美国特拉华州法律管辖。

本政策以语言切换器提供的每一种语言发布。具有管辖效力的是英文版本;译本供阅读之用,不得作为争议中援引的依据。