# 扫二维码安全吗？

扫这一下是安全的。二维码就是一段文字，镜头对准它，发生的只有一件事，就是这段文字被读出来。会出事的环节在后面一步，是某个东西把读到的内容打开的时候。而那一下，你可以不点。

最后更新 2026年8月26日

## 先说结论

扫码是安全的。二维码是画成方格的一小段文字。镜头对准它，发生的只有一件事，就是这段文字被读出来。读，装不了任何东西，去不了任何地方，也碰不着你手机里的任何东西。道理和看一眼纸上写的地址一样，看，不会把你送过去。

危险从后面一步开始，就是某个东西把读到的内容*打开*的时候。二维码骗局的全部本事，就是让这一步抢在你看清去处之前发生。码里那段文字是个地址，没有人能用肉眼读出来，而多数手机会急急忙忙一点，替你应了。把读和打开分开，骗局就没有下手的地方了。

## 二维码到底是什么

方格底下没有别的，只有一串字符。至多几千个，通常远远不到。可能是一个网址，一个 Wi-Fi 名加密码，一张联系人名片，或者一行普通文字。这个格式是 1994 年设计的，本来用于在丰田的工厂里追零件，里面不含任何指令。二维码装不下病毒，就像路牌装不下一样。

它装得下的，是一段向你手机开口的文字。打开这个网址，连上这个网络，存下这张名片。每一条都是请求，不是命令。码只管提议，扫它的那一方才管决定。把文字亮出来、然后停住等你的扫码器，完全无害。自作主张替你执行的扫码器，等于把决定权交给了印码的人。安全的扫码和危险的扫码，差别全在这里。

为了说话周全，补一句。解码的程序可能有毛病，所有解析输入的程序都可能有，这些年扫码器里也真出过。但那份风险属于扫码器，不属于码，骗局靠的也不是它。骗局靠的是你那一下点按。

## 贴码的把戏

这种骗局已经常见到有了名字，叫 quishing。手法简单得近乎难堪。自己印一张码，盖在真码上面，等。在停车缴费机上，假码通向一个装成市政样子的付款页。在餐馆桌上，盖住菜单。在塞进门缝的快递单上，就贴在“未能派送”几个字旁边。

注意让它得手的是什么。不是技术高明，这里面没有任何技术。是二维码恰好属于唯一一种地址，人在跟着走之前读不出来。歪网址用字母写出来，谁看一眼都露馅。同一个网址画成方格，和老实的一模一样。等你能看清这个码去了哪里，你已经到了。到的那个页面，特意做得像你等着见的那个，正在问你要卡号。

防的办法不是不扫。是在扫和去*之间*看一眼地址。这大约花两秒钟，把戏就整个落空了。

## 网址撒谎的三种路数

看两秒钟就够，但得知道看什么。歪网址会摆出三副老实面孔，三副都值得见过一次就记住。

### 1. @ 前面的名字

网址可以带一个用户名，写在 `@` 号前面。`@` 之前的一切都是摆设，真正的去处从它后面开始。`yourbank.com@evil.example` 去的不是你的银行，是 `evil.example`。前面那截“yourbank.com”，只是个被捎带着的、毫无意义的登录名。眼睛读网址读开头，浏览器读结尾。

### 2. 长得像、其实不是的字母

字母表之间有重合。西里尔字母 `а` 和拉丁字母 `a` 画出来一模一样，用它写的网址是另一个网址，屏幕上却看不出分别。这个把戏有名字，叫同形字攻击。一个去处可以和你信任的那个逐字吻合，人却在别处，原因就在这儿。

### 3. 老实的头一程

码里的网址可以是真正体面的。短链接、营销跳转、搜索引擎自家的点击统计，都体面。然后它只做一件事，把你*转送*到一个不体面的地方。头一个地址经得起查，去处却由一台服务器在你动身之后才定。印刷品上出现短链接，不能说明有什么不对，但它确实意味着一件事，就是你查得到的地址，不是你要到的地址。

## 怎么扫才稳妥

规矩就一句话。**先读，后开，永远别让一个动作把两件事都做了。**落到实处，是这么几条。

- 用把解出的文字亮给你、然后停住的扫码器。多数手机相机在打开之前，会用一条小横幅显示去处。读那条横幅，别凭反射去点。读网址，读*结尾*，别读开头。
- 赌注最高、又摆在公共场合的地方，疑心放最重。一切以付款收尾的东西，一切常年待在户外的东西。停车缴费机上的码，值得比博物馆展签上的码多想一会儿。
- 一个码直通登录页或者银行卡信息页，那一刻就该停下，改成亲手输入你本来就知道的网址。那个页面的正版，从来不会比几次击键更远。
- Wi-Fi 码和名片码，也配同样的停顿。一个请你的手机记一个网络，一个请它存一个人。两件事，知情地接受都没问题，悄无声息地发生就都不该。

## 这里的识读器是怎么做的

这个站有一个[二维码与条形码识读器](https://abox.tools/zh/qr-barcode-reader/)，它就建在本页一直讲的那条规矩上。**它从不打开任何东西。**解出的文字全文列出，网址真正会到达的主机单独抽成一行，上面说的三副面孔都会查，一露头就点名。打开链接是另一个按钮，读完再按。不按也行。

读这件事发生在你自己的机器上。你扫的那张图在你的浏览器里解码，不发往任何地方。所以一个让你起疑的码，可以放心检查，没有任何人知道它写了什么，这个站也不知道。把 Wi-Fi 关掉，页面照常干活，这是验证这句话最容易的办法。至于摆明了不怀好意的内容，比如会在打开方执行代码的 `javascript:` 地址，连链接都不给，只把它是什么说出来。

另一半也在。一个[二维码生成器](https://abox.tools/zh/qr-barcode/)，码在你自己机器上画。还有一篇作伴的指南，讲付印之前怎么[做一个码，并证明它扫得出来](https://abox.tools/zh/guides/make-a-qr-code-and-prove-it-scans/)。要是你这个问题背后还藏着那个更大的问题，把东西交给一个网站到底意味着什么，它有[自己的一页](https://abox.tools/zh/guides/is-it-safe-to-upload-files/)。
