群发资讯网

同事在共享表格里偷改我的客户数据,我加了段隐藏代码,他再改时全公司屏幕弹出了红字警告

同事在共享表格里偷改我的客户数据,我加了段隐藏代码,他再改时全公司屏幕弹出了红字警告我是销售部上半年的业绩冠军,客户转化

同事在共享表格里偷改我的客户数据,我加了段隐藏代码,他再改时全公司屏幕弹出了红字警告

我是销售部上半年的业绩冠军,客户转化率高出第二名一大截。

连续三个月,我发现共享表格里自己名下的客户数据被偷偷修改——联系人的电话号码末尾被改了数字,跟进记录的时间戳被往前挪了三天。

每次改动都很小,小到不仔细对账根本看不出来。

但累计下来,我已经丢了六单。改数据的人叫周伟,坐在我后排,上半年排名第二。

我没在办公室里跟他吵。我只是在共享表格的脚本编辑器里加了一段隐藏代码——给所有属于我的数据行设了一个保护密码,一旦有人不经授权修改单元格,表格会自动锁死,页面中央弹出一行加粗的红字:“数据保护已触发。修改者请联系IT部解锁,工号已记录。”

周三上午十点零七分,整个销售部的大屏突然闪了一下。三百平米的办公区里,所有人的电脑屏幕上同时弹出了那行红字。

IT部顺着工号查过去,找到的不仅是改我数据的人,还有他过去八个月里伪造的十七份客户跟进记录。

周一上午十点,我打开共享表格准备更新本周的客户跟进计划。

表格加载出来的那一瞬间,我觉得哪里不对。不是那种天翻地覆的不对,是眼角余光扫过去,某个数字的位置感不对。我盯着屏幕看了几秒,把鼠标移到第三十七行,联系人栏里,张总的电话号码。尾数7736。我看了大概三秒钟,总觉得这串数字长得跟记忆里的不太一样。

我拿起手机,打开通讯录,翻到张总的名片。尾数7738。不是7736。

我以为自己眼花了,把手机凑近了再看。7738。我上个月还给他打过电话,通话记录还在,拨出的时间是二月十七日下午三点二十分,时长四分十二秒。打的是7738。

我回到表格,把光标点在7736上。有人把8改成了6。就改了一个数字。一个数字,足够让下一个接手跟进的同事打不通电话,打两次没人接,标注“客户失联”。然后这个客户会被自动归入“待重新分配”池,变成别人的资源。

我往上翻。开始逐行逐列地对照。不是随便翻翻,是一条一条地跟手机通讯录、通话记录、微信聊天记录逐一比对。查完第三行的时候,手指已经开始发凉。

第四行,跟进时间从3月7日变成了3月4日。往前挪了三天。这意味着这个客户的“最后跟进日期”超过了公司规定的七天有效期,系统会自动标记为“跟进超时”,扣我的活跃度评分。

第五行,备注栏里“需要二次报价”六个字被删掉了。干干净净,光标点进去只有一个空格符。下一个看这条记录的人不会知道客户在等报价,会以为只是常规跟进,打个电话敷衍两句,然后客户觉得不被重视,转头找了竞品。

第七行,客户预算金额从28万改成了25万。少了三万。报价区间下调三万意味着我上次报的价格超出了客户的“预算范围”,领导审批的时候会打回来让我重新做方案。

第九行。第十二行。第十八行。每一行改动都很小,小到如果不逐条对照根本发现不了。就像有人在你的米袋子上扎了一个针眼,米不会哗啦啦地漏,但每天漏几粒。等你发现的时候,袋子已经空了一半。

我靠在椅背上。头顶的空调出风口嗡嗡地送着冷气,吹得后颈发凉。我把共享表格的版本历史点开,右侧弹出一个面板,上面逐条列出每一次修改记录。时间戳精确到秒。

2月19日,晚上八点四十七分。第三十七行,联系人电话,尾数7738改为7736。

2月23日,周六下午两点十一分。第四行,跟进时间,3月7日改为3月4日。

3月1日,晚上十点零三分。第五行,备注栏,“需要二次报价”删除。

3月8日,周五晚上七点十九分。第七行,预算金额,28万改为25万。

我一条一条往下翻。面板上的滚动条越来越短,像一个正在被压缩的弹簧。翻到最底的时候,我对着电脑做了一个总结:过去三个月,二十三条修改记录。全部发生在我下班之后或者周末。修改者的IP来自公司内网同一个网段。修改内容全部集中在电话号码、跟进时间、备注栏、预算金额这四个最容易导致丢单的字段。

我把这二十三条记录导出,存进一个新建的Excel文件。然后打开已成交客户和流失客户的清单,放在屏幕左边。右边是那二十三条修改记录。左右对照。

第一条。第二条。第三条。第五条。第八条。第十一条。

对照到第十一条的时候我停下来,把两只手从键盘上拿开,放在桌上。桌上的马克杯里,早上冲的咖啡已经凉透了,杯沿上凝了一圈褐色的水渍。对照结果很清楚:六个已经流失的客户,每一个在流失之前,数据都被人动过。电话号码改错导致联系不上,备注被删导致关键信息丢失,跟进时间被前移导致超期标记,预算被调低导致报价被打回。六个客户,六个被改动过的数据点,严丝合缝。

下午三点,销售部的办公区重新热闹起来。键盘声、电话声、讨论方案的声音搅在一起。我坐在工位上,把这些声音压到意识边缘,把注意力集中在耳朵上。我在听后排的动静。 周伟在打电话。他的声音很大,笑起来的时候整个办公区都能听见。他把椅子往后仰,一只脚蹬在桌子横梁上,电话夹在耳朵和肩膀之间,两只手在空中比画。“王总你放心,这个方案我亲自盯,绝对没问题!我周伟做事你还不放心吗?”

笑声。椅子落回地面的声音。挂掉电话之后他站起来,端着杯子往茶水间走。路过我工位的时候停了一下。

“陈哥,这个月冲业绩啊。”他拍了拍我的肩膀,手掌落在我肩胛骨上,力道不大不小,刚刚好让人觉得是兄弟之间的鼓励。“你上个月好像掉了好几单?没事,谁还没个低谷。”

我转头看他。他脸上挂着笑,嘴角的肌肉牵动得很自然,眼睛眯成两条缝。但那两条缝里的眼珠子没有在笑。不是凶狠,不是得意,是一种很平静的、正在观察的专注。像一个人站在鱼缸前面,看着水里的鱼游来游去。

“嗯,”我说,“掉了六单。”

“六单?我靠。”他皱了皱眉,语调里带着一种拿捏得恰到好处的同情,“是不是最近状态不太好?要不周末一起去爬个山,散散心?”

“看情况吧。”

他点点头,端着杯子走了。走出三步,又回头补了一句:“对了陈哥,你这周要更新的客户数据别忘了,周五之前得交。”

我看着他的背影消失在茶水间拐角。然后转回头,打开浏览器,在地址栏里输入了公司OA系统的网址。从制度文件库里翻出了三份文件,逐份点开,逐条阅读,逐段截图。

《员工手册》第九章第五条:“篡改公司业务数据或他人工作记录,属于严重违纪行为,一经查实,予以辞退处理。”

《销售数据管理制度》第四条:“销售数据管理系统中所有操作均自动记录操作人工号、操作时间、操作内容及IP地址,保存期限不少于三年。”

《信息安全管理规定》第十一条:“未经授权访问、修改、删除他人工作数据,视情节轻重给予记过、降薪、辞退处理。”

截图。存进文件夹。文件夹的名字叫“数据”。

晚上九点半,整个办公区只剩我一个人。走廊上的感应灯一盏接一盏地灭了,只有我头顶这两排还亮着。窗外的写字楼群黑了一大半,远处的高架桥上还有车灯在流动。我打开共享表格的脚本编辑器。

公司的共享表格系统用的是Google Sheets,工具栏最右边的扩展程序菜单里藏着一个叫Apps Script的入口。大部分同事不知道这个入口的存在。他们只用表格的基本功能——填数据、排序、筛选、共享。但每一个在线表格的背后都藏着一个完整的JavaScript运行环境,可以写脚本、设触发器、操作单元格、发送邮件。

我点开脚本编辑器。一个新的标签页弹出来,左侧是文件列表,中间是代码编辑区,白底等宽字体,光标在第一个空行上一闪一闪。我盯着那个光标看了大概三十秒。然后打开浏览器,新建了几个标签页——Apps Script官方文档,触发器参考,保护范围API,邮件发送接口。我大学辅修过计算机,JavaScript的基础语法还在脑子里,但具体的API调用要现学。

那天晚上我学到了凌晨一点。从研究onEdit这个简单触发器开始——每次有人编辑表格,这个函数就会被自动调用,参数里包含编辑者的邮箱、编辑的范围、修改前后的值。然后是保护机制——可以给指定单元格范围设置保护,只有知道密码的人才能修改。再然后是在脚本里嵌套一个弹窗——SpreadsheetApp.getUi().alert()方法,可以弹出一个浏览器级的对话框,红底白字,有关闭按钮。

第二天晚上继续。第三天晚上继续。

第四天晚上,凌晨十二点十七分,我把最后一行代码改完。保存。命名:protectMyData。然后我靠在椅背上,盯着屏幕上那几十行代码。注释清晰地标注了每一段的功能:

```javascript// 保护范围:负责人列为"陈宇"的所有数据行// 触发条件:任何未经授权的编辑操作// 保护密码:存储在脚本属性中,不可通过表格界面查看// 弹窗内容:数据保护已触发。修改者请联系IT部解锁,工号已记录// 邮件通知:自动发送至it-admin@xinda-tech.com及销售总监// 日志记录:触发时间、修改者工号、IP地址、修改内容```

周五晚上,我在家做了一次测试。用的不是公司电脑,是我自己的笔记本电脑,登录了一个测试账号。测试账号的名字是IT部小孟帮我建的,他说你要干嘛,我说测试一个表格功能,他说行。我打开共享表格,用测试账号登录,找到第三十七行张总的那条数据,把电话号码7736改回7738。光标点进单元格。输入新数字。敲回车。

屏幕闪了一下。 浏览器窗口的正中央弹出一个对话框。红底。白字。字是加粗的。顶端有一个黄色的三角形感叹号,旁边写着:数据保护已触发。下面是正文:共享表格检测到未经授权的数据修改行为。修改者工号已记录:CS045。表格已自动锁定。请修改者立即联系IT部解锁。最底部有一个按钮,蓝色的,上面写着“联系IT部”。最小化按钮是灰色的。关闭按钮也是灰色的。这个弹窗只能通过点击那个蓝色的按钮来关闭,而点击蓝色按钮会自动打开邮件客户端,收件人已经填好了IT部的邮箱地址。

我盯着弹窗看了五秒。然后把测试账号的工号从小孟给我的临时工号改成了公司的正式工号格式。弹窗上的文字也改了。原来是英文alert,我改成了中文,措辞读了五遍,改了三个版本。第一个版本写的是“你改你妈呢”,存了草稿,删掉了。第二个版本写的是“你被发现了”,也删掉了。第三个版本,写的是公事公办的语气——“数据保护已触发。修改者请联系IT部解锁,工号已记录。”这个版本留下来了。

公事公办的语气就够了。因为弹窗本身出现在全办公室的屏幕上,这个事实比任何情绪化的文字都更有杀伤力。

然后我打开手机,查收邮件。收件箱里躺着一封新邮件,发件人是从共享表格系统自动发出的,收件人是IT部和销售总监。邮件标题:数据保护触发警报。正文列出了触发时间、修改者工号、修改的行列坐标、修改前后的数值对比。工号CS045。是我的测试账号。

代码生效了。

我把测试记录从表格的版本历史里删除。把邮件也删掉。然后给测试账号的修改操作拍了张截图,存进那个叫“数据”的文件夹。文件夹里现在有:二十三条修改记录的导出表、六条对应流失客户的对照表、三份公司制度文件的截图、一张弹窗测试成功的截图、一段代码的备份文件。

我把文件夹最小化。电脑桌面漏出来,背景是孩子的百日照,穿着那件橙色的连帽衫,对着镜头笑得眼睛眯成缝。我看了两秒,关掉电脑,关灯,走出书房。

周一。周二。周三。日子继续过。每天早上到公司,打开共享表格,先检查版本历史——自己的数据行有没有新的修改记录。没有。周伟还是坐在后排,还是打电话谈笑风生,还是路过我工位时拍拍我肩膀。他什么都没察觉到。那段代码藏在表格的脚本编辑器里,没有任何可见的痕迹。它只是静静地躺在那里,像一个已经上好了弦的捕鼠夹,等着下一只脚踩上来。 我在手机备忘录里写了一行字:“他上一次改我数据是3月8日。按之前的频率,十天到两周之内会再动一次。”然后把手机翻过来扣在桌上。屏幕朝下,黑色的手机壳上沾着一点咖啡渍。

今天是3月17日。距离上次修改,九天。

3月19日。周三。

上午十点,我坐在地铁上。不是去公司,是去客户那边签合同。上周谈下来的一个新客户,今天正式签约,约的十点半,在对方公司。地铁车厢里人不算多,我站在靠门的位置,一只手拉着扶手,一只手拿着手机刷公司邮箱。

地铁在隧道里穿行,信号时断时续。屏幕上的邮件列表刷新了一下,然后一封新邮件从顶端弹出来。发件人是共享表格系统自动通知邮箱,标题是一行黑色的加粗字:数据保护触发警报。收件人是我自己——我在代码里加了一条规则,一旦触发,除了通知IT部和总监,也抄送我自己一份。

我把邮件点开。

正文很简洁。触发时间:10:07:23。修改者工号:CS027。IP地址:192.168.3.52。网口编号:3F-E-14。修改内容:第十七行,“负责人”列,陈宇改为周伟。第二十一行,联系人电话,尾数9127改为9121。第二十五行,备注栏,“已报方案待审批”删除。修改前数值、修改后数值、时间戳精确到秒,每一项都列得清清楚楚。

我把这封邮件截了个图。

然后打开微信,找到小孟的头像,把截图发过去。附了一句话:“帮我确认一下CS027是谁的工号。”

小孟回得很快:“你等一下。我在机房,马上查。”

地铁继续往前开。窗外的隧道壁上一盏盏灯飞速掠过,明暗交替的光打在手机屏幕上。我握着扶手,手指的关节微微发白。不是紧张,是一种很奇怪的平静。像在黑暗里等了很久的哨兵终于听到了脚步声,不是害怕,是“来了”的确认。

一分钟后,小孟发回来一张截图。是IT后台的员工账号管理页面。工号CS027。姓名:周伟。部门:销售部。入职日期:2021年8月15日。网口编号3F-E-14对应工位:三楼东区14号,销售部后排靠窗。

下面是另一张截图。小孟从机房监控终端拍的照片,屏幕上是共享表格服务器的实时日志。日志里有一行被标成了红色——10:07:23,用户CS027在共享表格中执行了三次修改操作,触发了一个名为protectMyData的脚本保护规则。系统自动向IT部邮箱发送了警报,并记录了一份操作日志。 小孟追了一条消息:“陈哥,这个protectMyData是你写的?刚才IT部邮箱收到警报了,我们老大正在看。”

我打了三个字:“等一下。”

这时候,销售部三百平米的大办公区里,事情正在发生。

十点零八分。坐在角落工位的小赵正对着电脑审核合同条款,屏幕上的共享表格页面突然闪了一下。他以为是浏览器卡了,手指在触摸板上划了一圈,光标没反应。然后屏幕正中央弹出了一个红色的对话框。

红底。白字。顶端一个黄色的三角形感叹号。对话框正中央写着一行加粗的文字:“数据保护已触发。共享表格检测到未经授权的数据修改行为。修改者工号已记录:CS027。表格已自动锁定。请修改者立即联系IT部解锁。”

最小化按钮是灰色的。关闭按钮也是灰色的。只有最下面那个蓝色按钮亮着——“联系IT部”。

小赵的耳机还挂在脖子上,里面漏出正在播放的音乐声。他把耳机摘下来,盯着弹窗看了三秒。然后转头看旁边的工位。旁边工位的老吴正在端着搪瓷杯喝咖啡,杯子停在嘴边,眼睛盯着自己的屏幕。老吴的屏幕上,同一个弹窗。红底白字,一模一样的文字。

“老吴,”小赵的声音有点不确定,“你的屏幕——”

“看到了。”老吴把搪瓷杯放在桌上。杯子磕在桌面上的声音比平时响了一倍,因为整层楼的键盘声正在一层一层地停。像退潮一样,从靠近走廊的那排工位开始,键盘声停了。然后是中间这排。然后是后排。有人在站起来,有人把椅子往后推,有人盯着屏幕嘴巴张开。

三百平米的办公区里,四十几台电脑。每一台屏幕上,只要当时打开了共享表格页面,都弹出了同一个红色的对话框。不是群发消息。不是邮件通知。是共享表格的脚本保护机制——脚本一旦被触发,所有正在查看该表格的设备都会同步弹窗。此刻,这四十几台电脑上的弹窗同时亮着,像一排沉默的警报灯。