二维码的安全风险,以及如何核验一个码

二维码是一个你读不出来的链接。这就是全部的攻击面。

二维码 发布于 2026年10月20日 阅读约 2 分钟

四种真实风险

风险运作方式要检查什么
钓鱼(quishing)码指向仿冒的登录页逐字符读域名
覆盖贴纸在真码上贴一张假码留意翘起的边缘或印刷质感不一致
支付跳转支付点上的码被替换与商户自己的展示内容核对
恶意软件投放码引导下载 APK 或描述文件绝不要通过二维码安装应用

punycode 与仿冒域名

某些非拉丁字母表中的字符,与拉丁字母看起来完全一样。用这些字符注册的域名会显示成你熟悉的那个单词,实际却解析到别处。浏览器会把这类域名显示成 Punycode 形式——也就是以 `xn--` 开头的那种——正是为了让它们一眼就能看出来。

如果一个网址的主机名以 `xn--` 开头,在证明它是无害的之前,都应当当作可疑对象。面向消费者的普通链接没有正当的常见理由长成这样。

真正有用的习惯

  • 看域名,不看页面设计。一个完美的登录页复制品成本很低。
  • 绝不在通过公共场所扫码进入的页面上输入密码。
  • 优先用你自己打开的支付应用,而不是一个承诺打折的码。
  • 餐馆菜单的话,索要银行卡信息的码不是菜单。

常见问题

扫二维码本身会安装恶意软件吗?

不会。二维码只承载文本。风险在于文本在你操作之后做了什么——打开恶意页面或安装下载的文件都需要你确认。

什么是 punycode 域名?

用非 ASCII 字符写成的域名,浏览器显示为 `xn--` 加一串编码。它可被用来模仿熟悉的品牌名。

扫海报上的二维码安全吗?

扫描是安全的。在输入任何内容之前,确认域名与预期的机构相符,并对任何索要付款或凭据的码保持警惕。

配合这篇指南使用的工具

更多指南