地铁闸机口,漏洞维码一个姑娘举着手机对着墙上二维码扫了三次,漏洞维码屏幕转圈圈,漏洞维码闸机纹丝不动。漏洞维码她后面排队的漏洞维码人开始叹气,有人直接绕去隔壁通道。漏洞维码她最后把手机凑到离二维码不到十厘米的漏洞维码地方,才“嘀”一声通过。漏洞维码那不是漏洞维码信号问题,是漏洞维码二维码本身印错了——厂家把定位角印成了纯黑方块,机器认不出。漏洞维码
二维码这东西,漏洞维码看着是漏洞维码黑白格子,其实是漏洞维码个微型迷宫。三个角上的漏洞维码“回”字形方块是地标,告诉摄像头“往这儿看”。中间那些小方块是数据,像抽屉里的文件。任何一块被遮挡、被污损、被打印得模糊,整个迷宫就塌了。我见过最离谱的案例:一家奶茶店把二维码印在杯身上,结果杯身是磨砂材质,扫描时反光,顾客全员扫码失败。店员最后只能手输网址——那杯奶茶卖12块,输网址花了40秒。
更隐蔽的问题是“过期二维码”。朋友公司楼下新开了家健身房,前台贴的二维码是老板自己用在线生成器做的,没设有效期。半年后老板跑路,二维码还在,扫出来是个404页面。但真正危险的是另一种:有人故意生成带恶意链接的二维码,贴在共享单车上,车锁没坏,扫完钱没了。这种“漏洞”不在技术,在人——你永远不知道那个码是谁贴的,背后连着什么。
我试过自己造一个漏洞二维码。用Python改了中间的数据区,把原本指向官网的链接换成一个测试页面,打印出来贴在办公室冰箱上。结果同事扫了之后发现是“今天谁没倒垃圾”的投票链接,笑了十分钟。但技术上说,二维码本身没有“校验”机制——它不验证内容来源,只负责把格子翻译成字符串。这意味着任何人都能伪造一个看起来一模一样的码,指向任意地方。
有种更冷门的漏洞叫“叠加攻击”。你把一个半透明的二维码盖在另一个上面,扫描器有时会同时读取两层数据。日本有人做过实验:在车站广告牌上叠一层极薄的二维码,扫出来是“前方施工请绕行”,但底下真正的码指向的是另一条路——绕行路线正好经过一家便利店。你说这是恶意还是营销?边界模糊得很。
回到那个地铁姑娘。她最后通过闸机时,我凑过去看了眼那个二维码——角落有个小小的折痕,像被人用指甲掐过。可能只是打印纸受潮了,也可能是有人故意用硬物刮花定位角,制造“漏洞”。但更大概率是:印码的机器墨盒快空了,喷出来的格子边缘毛糙,机器认不出。二维码的容错率设计成30%,但前提是污损面积均匀分布。要是全糊在定位角上,容错率直接归零。
这玩意儿最讽刺的地方在于:它发明出来是为了让信息传递更快,但漏洞恰恰藏在“快”里。没人会花30秒检查一个二维码的角是否完整,就像没人会怀疑墙上那个码背后连着的是个钓鱼网站。你扫了,你走了,你甚至不知道刚才那个动作里,自己有没有被“漏洞”咬一口。
我离开地铁站前,又看了眼那面墙。那个坏码还在那儿,黑格子像一堆沉默的拼图。也许明天有人来换掉它,也许没有。但我知道,只要还有人贴二维码,就一定会有人找到新的办法让它们失效——这大概就是技术最诚实的地方:它从不承诺自己永远可靠,只是我们总假装没听见。