Really Free QR Code Generator··阅读用时 8 分钟

先解码再扫描:查看二维码内容后再决定是否打开

二维码无法用肉眼读懂,但提取其中内容只需几秒。了解如何在操作前查看目的地,以及这项检查无法告诉你的事情。


先解码图片,不要直接扫描。扫描器会解码文本并立即执行;解码器只解码相同文本并显示给你。这一差别就是全部的安全余地。如果内容是你认识的域名上的 URL,二维码会直接指向那里。如果是陌生域名上的短链接,第三方就在访问路径中。

有两种情况需要这样做:你准备扫描一个并不完全信任的二维码,或者准备打印一个由其他地方生成的二维码。同一种方法可以应对这两种情况。

第 1 步——读取内容,而不是打开它

二维码承载的是文本。扫描器会解码文本并立即执行——打开 URL、加入 Wi-Fi 网络、开始通话。解码器解码相同文本,但只会将其显示给你。这一差别就是全部的安全余地。

拍下二维码或截取屏幕,然后在我们的 二维码读取器 中解码图片。整个过程都在浏览器中运行:图片不会上传,也不会打开任何内容。你会得到原始文本内容。

第 2 步——判断内容属于哪种类型

二维码内容通常遵循一些容易识别的格式。读取开头部分,就能知道扫描器会做什么。

内容开头类型扫描器会做什么
https://http://URL打开页面。这是最常见的情况
WIFI:T:WPA;S:…;P:…;;Wi-Fi 凭据提供加入该网络的选项——接受前先核对 SSID
BEGIN:VCARD联系人卡片提供保存联系人的选项
mailto: / tel: / smsto:电子邮件、电话、短信预填消息或拨打号码
没有前缀的纯文本文本显示内容。没有危害
javascript: 或陌生的应用方案可疑内容不要打开

如果你想了解合法二维码的构成,我们的类型页面介绍了各种格式:Wi-FivCard电子邮件电话纯文本

第 3 步——判断域名

对于 URL 内容,关键是域名——从第一个单斜杠开始向右读取。在 https://pay.cityparking.gov/meter/44 中,域名是 cityparking.gov。在 https://cityparking.gov.pay-now.click/meter/44 中,域名是 pay-now.click,看起来熟悉的部分只是装饰。

你看到的内容解读
你认识且与相关组织匹配的域名直接指向。二维码会跳转到看起来要去的位置
你不拥有的通用二维码短链接服务第三方位于访问路径中,可以更改或停用目的地
真实品牌名称是其他域名的子域名典型的仿冒。检查最右侧的域名标签
原始 IP 地址在印刷材料上几乎从不合法

关于短链接,有一点需要注意:认出所使用的服务,并不能告诉你最终目的地。Unit 42 说得很直接——“即使注重安全的人会在扫描前检查 URL 预览,看到缩短链接时也无法确定最终目的地”——他们指出最常被滥用的三个服务,正是普通的 二维码生成器重定向域名。熟悉的短链接服务并不代表安全。

第 4 步——跟踪重定向链

如果内容是短链接,而你需要知道它最终会到哪里,请在不加载页面的情况下解析它。在终端中执行:

运行 curl -sIL "https://short.example/abc" | grep -i "^location:"——这会打印每一跳的 Location 标头,而不会执行页面内容。注意出现了多少跳:跳转一次就到达预期目的地通常很正常;如果经过无关主机多次跳转,通常意味着存在分析或广告中间方,而这些中间方都会看到请求。二维码代理会记录什么 介绍了这些跳转会收集哪些信息。

有两个注意事项。重定向可以根据 IP、用户代理或时间,向你提供一个目的地,向其他人提供另一个目的地——因此,干净的结果只能证明当时对你发生了什么,不能说明另一个国家的客户会看到什么。动态二维码的目的地之后也可以随时更改,而这正是它被售卖的功能。

如何检查通过电子邮件收到的二维码?

请将这种情况视为单独且更危险的情形。英国国家网络安全中心(NCSC)指出,钓鱼邮件专门使用二维码,因为并非所有安全工具都会扫描图片,所以二维码可以携带恶意链接,绕过本来会拦截同一文本链接的过滤器;而扫描二维码会把你带到个人手机上,其保护通常弱于工作电脑。

检查方法很简单。将图片从邮件中保存出来,不要直接扫描屏幕上的二维码;解码文件,然后读取域名。在电脑上完成,不要用手机,这样你不会离开受保护的设备。如果域名与邮件声称的组织不完全匹配,请停止操作——通过你平时使用的方式联系该组织,不要使用邮件中的任何联系方式。

需要留意的信号是:紧迫感与二维码同时出现,例如包裹投递问题、税务通知、邮箱空间已满,或要求今天完成账户验证。合法组织极少要求你扫描一个印刷方块来解决紧急账户问题。二维码钓鱼 全面介绍了这些攻击模式。

解码器无法告诉你什么?

明确检查的局限,才能让检查保持诚实。

  • 目的地是否安全。 解码器显示的是地址,不是内容。看起来熟悉的域名仍可能托管被入侵的页面。
  • 其他人会看到什么。 重定向可以按 IP、用户代理或一天中的时间提供不同目的地。你的干净结果只描述当时的请求。
  • 明天会做什么。 动态二维码的目的地可以在检查后的任何时候更改。这正是它被售卖的功能,也正因如此,“我验证过一次”并不能长期说明动态二维码的情况。
  • 印刷版本是否与文件一致。 覆盖贴纸意味着你批准的设计稿可能与墙上的实物不同。只有解码实体二维码,才能了解实体二维码的情况。

前后两项局限,正是本博客在面向企业的建议中反复强调同一点的原因:只有将静态二维码放在你自己的域名上,一次性检查才能始终有效。

第 5 步——印刷前检查自己的设计稿

这只需一分钟,却能避免一整类代价高昂的问题。

  1. 导出最终设计稿,确保它与实际印刷版本完全一致。
  2. 解码这个文件——不要解码生成器预览中的文件。
  3. 确认内容是你想要的 URL,且使用你拥有的域名。
  4. 如果它是其他人域名上的短链接,不要打印。重新生成静态二维码。
  5. 印刷校样到达后扫描一次,确认它仍会跳转到正确位置。

如果二维码已经印刷,而检查来得太晚,二维码被劫持后的恢复指南 介绍了仍可采取的选项。如果它已经停止工作,而你还不知道原因,请从二维码停止工作的原因开始。

常见问题

二维码损坏、弄脏或部分被遮住后,还能解码吗?
通常可以。二维码采用里德–所罗门纠错,在最高级别下,大约 30% 的图案丢失后仍可能恢复内容。但三个大的角落方块不能缺失——解码器需要依靠这些定位标记来找到网格并确定方向。缺了一个角的二维码通常会失败;中间有磨损的二维码通常不会。
只为了查看二维码而扫描它,安全吗?
大多数手机扫描器会在打开前显示预览,这样做相对安全。风险在于养成习惯,看到后就直接点进去。如果有任何疑虑,请改为解码图片——这样可以完全消除风险。
如何知道二维码是不是动态的?
将它解码。如果内容是你不拥有且也不是目的地网站的域名上的短链接,那么它就是动态二维码,会通过该第三方进行路由。静态二维码本身就包含目的地 URL。
没有互联网时,扫描前能知道二维码会做什么吗?
可以。解码是本地计算:在浏览器中运行的解码器只要页面已经加载,就不需要网络;而且内容是你可以自行阅读的文本。
如果印刷二维码解码后指向我不认识的域名,该怎么办?
不要扫描它;如果它位于公共设施上,请向设施所有者报告。美国联邦贸易委员会(FTC)和联邦调查局(FBI)都曾警告有人将贴纸覆盖在合法二维码上;请参阅二维码钓鱼

你在这里生成的二维码,解码后始终会准确显示你输入的内容:URL 二维码。更多背景信息请参阅二维码诈骗的真相


准备好使用静态二维码了吗?

在浏览器里直接生成——无需账户、无跟踪、无订阅。你创建的内容归你所有。