|
去年冬天,有漏洞我在一个老旧小区里租了间房。有漏洞房东递来一把钥匙,有漏洞说门禁卡坏了,有漏洞刷不开,有漏洞但钥匙能开单元门。有漏洞我试了三次,有漏洞确实能开。有漏洞可到了晚上回来,有漏洞钥匙插进去转不动了。有漏洞折腾了十几分钟,有漏洞楼上下来个大爷,有漏洞拿他的有漏洞卡一刷,门开了。有漏洞他看了我一眼:“你这钥匙,有漏洞齿形不对,白天能开是因为门没锁死。” 这就是漏洞。不是系统设计时故意留的,是装配那天,某个工人少拧了半圈螺丝。 我后来跟做安防的朋友聊这事。他说这种“半锁”状态在老旧小区特别常见。电子门禁的锁舌应该完全弹出卡住门框,但安装误差或者磨损会让它只弹出一半。白天有人进出,门框震动,锁舌滑回去一点,钥匙就能拨开。晚上没人动,锁舌复位,钥匙就失效了。他说这叫“物理漏洞”,跟软件里的缓冲区溢出一个道理——边界条件没处理好,正常操作反而触发异常。 有意思的是,住户们都知道这事。大爷说:“白天随便进,晚上得刷卡。”他们不觉得是漏洞,觉得是规律。就像有人告诉你,这楼梯第三级特别矮,容易绊,你记住了,就不绊了。漏洞被日常经验覆盖,成了默认操作流程的一部分。 但新来的人不知道。我就是那个新来的。 这让我想起另一个事。前年某银行APP更新,转账界面多了个“最近转账”快捷入口。产品经理觉得方便,测试也过了。上线三天,客服收到一堆投诉:有人误触,把钱转给了上周刚吵过架的同事。漏洞不在代码,在交互逻辑——它把“高频操作”和“高风险操作”放在了同一个点击层级。后来加了个二次确认弹窗,投诉没了。可你说,这算修复漏洞,还是算给漏洞打补丁? 我倾向于后者。因为真正的漏洞是:设计者默认用户会仔细看屏幕。这个默认本身就有问题。 回到那把钥匙。我后来自己配了一把,齿形照着原钥匙锉的,但多锉了零点几毫米。现在白天晚上都能开。房东看见了,说:“你这钥匙比我的好用。”我说:“我把锁舌那个斜面角度改了。”他愣了一下,说:“哦,你搞技术的吧。” 其实我不是搞技术的。我只是觉得,漏洞这东西,你发现了,要么绕过去,要么改掉它。绕过去的人多了,漏洞就成了规则。改掉它的人多了,规则就成了标准。但大多数时候,我们只是站在门口,等一个刚好路过的人,拿他的卡刷一下。 那天晚上大爷帮我刷开门之后,说了句话:“你这钥匙,得白天用。”我问他:“那晚上呢?”他说:“晚上你早点回来。” 你看,漏洞最后变成了作息建议。 |