他的扫描文件有漏洞
老周把那份盖着红章的描文合同扫描件发过来时,我正对着屏幕啃面包。漏洞他催得急,描文说对方公司下午就要回执。漏洞我扫了一眼PDF,描文页脚有个淡淡的漏洞阴影,像谁不小心把咖啡渍印在了纸上。描文
“这文件有问题。漏洞”我咽下面包,描文给他回了条语音。漏洞老周秒回:“别闹,描文人家法务刚发来的漏洞,格式对得很。描文”
我没跟他争。漏洞放大到300%,描文那个阴影其实是个半透明的矩形框,正好框住“违约责任”那一段。更蹊跷的是,文件属性里显示创建时间是凌晨两点十七分——哪个正经法务半夜发合同?
老周不信邪,说我是职业病犯了。他在一家创业公司做商务,最近正谈一笔关键融资,对方是知名投资机构,流程规范得很。他催我赶紧打印盖章寄回去,说晚了这轮就黄了。
我让他把原始PDF拖进Hex编辑器里看一眼。他照做了,电话那头沉默了几秒。“怎么后面跟着一堆乱码?”他问。乱码不稀奇,真PDF都带结构数据。但诡异的是那段乱码里有个重复出现的字符串,加密过的,长度固定。
我让他把文件发我,用工具跑了一遍。那串字符是个外链,指向一个俄罗斯的IP地址。我顺着查下去,发现这个PDF的元数据里嵌了个小脚本——平时不激活,但一旦打印次数超过三次,就会自动把“违约金比例5%”悄悄改成“15%”。
老周这回真急了,直接打车来我工作室。他盯着我屏幕上的分析报告,额头冒汗:“那这合同……签了会怎样?”我说,如果按他们的流程走,打印出来盖章回传,对方收到的是带修改条款的版本,法律上有效。到时候真出了纠纷,你手里那份跟对方存档的对不上,吃哑巴亏的是你。
他骂了句脏话,说对方看起来挺正规的。我笑了笑,这年头漏洞不在技术,在信任。那扫描文件之所以有漏洞,恰恰因为它太“完美”了——页脚整齐,字体统一,连骑缝章都严丝合缝。可真实世界里,哪有这么干净的扫描件?
后来老周拿着我的分析报告去找对方法务对质。对方一开始死不承认,直到老周把那个俄罗斯IP的访问日志拍在桌上。对面这才松口,说是外包的合同管理系统出了“配置错误”,愿意重新走流程。
老周后来请我吃了顿涮羊肉,说要不是我多看一眼,这轮融资可能就栽了。我涮着毛肚,跟他说其实不怪我眼尖,怪他们太懒——改条款也不换个像样点的工具,阴影都压到文字上了,打印出来铁定露馅。
他问我要不要教他几招防身,我说不用,你记住一条:任何扫描文件,只要不是从对方公司内部系统直接导出的原版,都先查一遍元数据。特别是那种急着让你签的,十有八九藏着猫腻。老周点头,又夹了片肉:“那你这招能对付所有漏洞吗?”
我嚼着肉,含糊回他:“不能。但至少能让你别在阴沟里翻船。”窗外夜色正浓,火锅的热气糊了玻璃,像极了那张扫描件上模糊的阴影。有些漏洞藏在文件里,有些藏在人心里,后者更难扫出来。
