我认识一个程序员,头部漏洞去年被自己写的头部漏洞代码坑到凌晨三点。他给公司做内部系统,头部漏洞权限模块里留了个逻辑漏洞——用“或”条件判断用户角色,头部漏洞结果普通员工只要在URL里加个参数,头部漏洞就能看到CEO的头部漏洞工资条。不是头部漏洞黑客攻击,就是头部漏洞手滑。他盯着屏幕骂了自己半小时,头部漏洞然后默默把那段代码改成了“与”条件。头部漏洞
这事让我想起一个更普遍的头部漏洞现象:人类头部的漏洞,从来不在技术层。头部漏洞我们每个人脑子里都跑着一套祖传的头部漏洞操作系统,底层代码写了几百万年,头部漏洞升级补丁打了几千代,头部漏洞但核心漏洞始终没修。比如“确认偏误”——你搜“吃鸡蛋有害健康”,能搜出三百篇论文;搜“吃鸡蛋有益健康”,能搜出四百篇。搜索引擎不骗人,骗人的是你点开哪条链接的手。
更麻烦的是,这些漏洞还有“热修复”功能。你刚意识到自己带着偏见看人,下一秒就给自己编了个理由:“我不是偏见,我是经验丰富。” 大脑的辩护律师永远在线,而且不收费。我邻居阿姨就是典型,她坚信“属羊的人命苦”,每次相亲介绍对象,先问生辰八字。你要是跟她讲统计学,她会说:“你不懂,这是老祖宗的智慧。” 你看,漏洞不仅没补,还长了层保护壳。
有些漏洞是出厂自带的,有些却是后天焊死的。我见过最顽固的一个,来自一位创业公司老板。他坚信“加班是福报”,自己每天睡在公司,也要求员工如此。有人劝他看数据——过度加班导致效率下降,流失率飙升。他摆摆手:“那是他们不够拼。” 直到某天他晕倒在会议室,心电图显示心律失常,医生让他住院两周。那两周公司业务照常运转,甚至因为员工正常作息,业绩还涨了5%。他出院后没说话,默默把下班时间改成了六点。
别急着笑别人,你我的漏洞可能更隐蔽。比如“沉没成本谬误”——花了钱买的电影票,难看也要看完;谈了五年的恋爱,明知不合适也拖着不分;学了四年的专业,毕业发现没兴趣,却硬着头皮找对口工作。我们总把“坚持”当美德,却忘了问一句:如果这是错的呢?
最讽刺的是,我们明明能察觉漏洞的存在,却常常主动喂养它。刷短视频时,算法推什么你看什么,越看越上瘾,越上瘾越觉得自己是对的;吵架时,你只记得对方说错的十句话,忘了他做过对的五十件事。大脑像一台老式收音机,总爱调频到杂音最大的波段。
那怎么办?我没法给出标准答案,毕竟我自己也天天踩坑。但有个笨办法可能管用——定期给自己“降权”。像个普通用户一样,别太信任自己的判断。写代码的人都知道,测试要拿“脏数据”跑,不能只用理想输入。人也一样,多听听反对意见,多看看自己讨厌的人怎么说,甚至偶尔故意做点“不符合人设”的事。这不是自虐,是在给系统打补丁。
昨晚我又想起那个程序员朋友。他后来把漏洞写进周报里,标题就叫《头部漏洞》。老板看完批了四个字:“引以为戒。” 他苦笑,其实他想说的是——这漏洞不止存在于代码里,也存在于我们每个人的颅骨之内。可惜,没多少人愿意承认自己脑子里跑着有bug的版本。