一个二维码(QR 码)本身不会向外界透露你的任何信息。它只是一种存储数据的图案——通常是一个网址——而且无法感知自己被扫描过。隐私风险在别处:一是二维码打开的网页,二是生成这个二维码的服务,两者都可能记录你的操作细节。
二维码只是数据
二维码是一种二维条码。黑白模块编码的是普通字符:一个网址、一段文字、联系人名片(vCard)、一个 Wi-Fi 密码。手机相机识别出图案后,会当场把这些字符解码出来。二维码本身不传输任何东西,因为它不是设备——没有存储器,没有网络连接,也无法报告"我被扫过了"。
这意味着一张印刷出来的二维码,其隐私程度和写在纸上的同一段文字完全一样。一个人扫还是一百万人扫,图案不会变,也不会"打电话回家"。静态二维码——直接包含最终内容的那种——从根本上就不具备追踪你的能力。
这种开放性还有另一面:二维码里没有任何隐藏内容。任何人用任意扫码工具都能解码自己看到的任何码。编码不是加密,这个事实决定了本文后面关于"什么不该放进二维码"的建议。
隐私风险真正来自哪里
扫码之后会发生两件事,值得分开来看。
第一是目的地。打开一个网站的二维码,打开的就是一个普通网站,包括随之而来的一切:服务器日志、Cookie、统计脚本、表单。网站知道有一次访问发生了,也能记录任何访客留下的细节。
第二是生成二维码的服务。很多商业二维码生成器并不直接编码你的目标地址,而是编码一个指向它们自己域名的短跳转链接。你一扫码,先访问的是它们的服务器;服务器记录这次扫描,再把你转发到真正的目的地。这就是"动态"二维码的工作原理,也是扫描统计数据的来源。
静态二维码没有中间人。扫它就是直达目的地,中间没有任何人能了解到什么。当隐私很重要时,这两种设计的区别是最需要理解的一点。
打开链接时,网站能看到什么
无论通过二维码还是点击打开链接,网站服务器获得的信息都一样:
- 你的 IP 地址,它标识你所处的网络。
- 由 IP 推断的大致位置,通常是城市或地区级别,而不是街道门牌。
- 设备和浏览器信息,通过 user agent 自动发送:操作系统、浏览器类型和版本、屏幕尺寸。
- 浏览器语言、访问的确切时间,以及你浏览了哪些页面。
- 你主动输入的一切:表单内容、登录凭据、下载行为。
- Cookie 和浏览器指纹,可用于在后续访问中识别你。
同样重要的是网站不容易看到的东西。除非你主动填写,它拿不到你的姓名、邮箱、电话号码或通讯录。未经授权,它无法读取你的精确 GPS 位置;你的摄像头和文件在授权之前也是无法触碰的。
"扫"这个动作本身不泄露任何东西。打开页面才是在共享数据——所以实际的隐私问题永远是:你信不信任另一端那个页面。
扫码追踪是如何实现的
当一个二维码是"动态"的,它编码的链接指向生成器的服务器。每次扫描都是服务器可以记录的一个事件:时间、背后的 IP 地址、设备类型,以及由 IP 推断的大致位置。运营者在后台看到一张扫描数据面板,通常还能随时更改二维码的指向——哪怕它已经印在了一千张传单上。
这本身并不是暗中作恶。可随时更新的餐厅菜单、重印的包装、营销活动,都是需要可修改、可统计二维码的正当理由。但对你造成的后果是真实的:每一次扫描都会上报给一个你未曾选择的第三方,其隐私政策——如果你能找到的话——决定着这条记录的用途。落地页还可能在跳转记录之外叠加自己的统计分析。
二维码也会远离它的制造者。在一个国家被扫的海报,可能经由另一个国家的服务器中转。从隐私角度看,扫它就等于直接联系那个运营者。
扫码时如何减少暴露
一些小习惯能覆盖大部分风险:
- 打开之前先看。大多数手机相机会在页面加载前显示解码后的链接,至少显示域名。如果是陌生的短链接或拼错的域名,不要打开。
- 对来源不明的二维码落地页保持警惕。不要在扫海报进入的页面上输入登录凭据、支付信息或个人数据。如果二维码自称是你的银行或水电燃气公司,自己手动输入该机构的网址。
- 拒绝不必要的附加项。不要安装二维码落地页推销的应用,对与当前操作无关的权限请求一律拒绝。
- 想避开 Cookie 时可以使用无痕浏览,但要清楚它并不能隐藏你的 IP 地址。
- 如果对目标网站隐藏 IP 对你很重要,可以考虑 VPN——同时要明白,VPN 服务商会看到原本网站能看到的东西。
- 优先选择可信来源。有人曾把贴纸覆盖在正规二维码上,把人引向欺诈付款页面,所以敏感场合的二维码值得像可疑邮件链接一样被审视。
为什么不要把机密信息放进公开的二维码
因为任何扫码工具都能解码任何二维码,你编码进去的一切实际上都是公开的。屏幕上、海报上、名片上、共享文档里的二维码都可能被拍照或截屏,其中的数据会在这张图片里无限期留存。
这就排除了一长串人们确实会放进二维码的东西:
- 密码、PIN 码和一次性验证码。谁能看到码,谁就握有秘密。
- 出现在公开可见材料上的 Wi-Fi 凭据。咖啡馆墙上的访客网络密码是刻意公开;办公室门上私人网络的密码就是泄露。
- 陌生人能看到的一切载体上的证件号码、家庭住址或电话号码。
- 一次性票券码,可能在轮到你之前就被复制使用。
- 双重验证设置码。绑定验证器应用时显示的二维码,包含生成你登录验证码的密钥。任何扫到它的人也能生成这些验证码,所以绝不能分享或拍照。
规则很简单:二维码是发布数据的手段,不是保护数据的手段。只有当每一个能看到码的人都理应拥有这个秘密时,才可以把它编码进去。
注重隐私的生成器有何不同
便于追踪的设计需要一个中间服务器:短链接、跳转、日志。注重隐私的生成器去掉这个中间人,其余差异都由此而来。
它们在你的浏览器里生成二维码,而不是在服务器上,因此你编码的文字或地址从不离开你的设备。它们无需注册账号即可使用,因此不会收集邮箱去关联你的二维码。它们生成静态二维码,直接包含最终目的地——没有跳转、没有扫描日志、没有有效期。只要目标地址存在,二维码就一直有效,被扫描时也不会通知任何人。
一些免费生成器就是这样工作的,QRCodeMax.Vip 是其中之一。检验任何工具的标准都很简单:如果一项服务生成基础二维码也要注册,或只提供经由自家短链接的二维码,那这个码同时也是一个追踪机制。如果它当着你的面生成二维码、什么都不索取,那这个码就又回归为单纯的数据。
要点总结
二维码无法透露你的任何信息,它只是一个静止的图案。你的隐私取决于目的地页面,以及二维码背后的服务。打开前先看链接,把陌生的二维码落地页当作陌生的邮件链接对待,绝不在公开可见的东西里编码机密,选择在本地生成静态码、无需账号、没有跳转的生成器。做到这些,扫码就可以保持和阅读一样私密。