程序员把AppKey写死在了代码里,老板手欠,把App配置删了,结果导致整个公司的软件都不能用了!这就是发生在我们公司的真实事情,本来把AppKey写死在代码里就已经够让人意外的了,结果老板还把App配置给删了,所以,事情就这么发生了!

打开网易新闻 查看精彩图片

对接过一些大厂的WebApi的同学都应该知道,想要调用一些开放平台的接口,首先需要注册该开放平台的开发者权限。

一般通用的做法就是开放平台都会要求开发者登记一个应用,然后分配给这个应用一个叫作AppKey的东西,用来表示每个应用的唯一标识,每个开放平台可能对于这个AppKey的叫法都不一样,这里统称AppKey。

有了这个AppKey以后,我们就可以根据需求向开放平台申请对应的接口权限了。

我们公司有个软件,是专门针对某个开放平台的WebApi进行开发的。

最开始开发这个软件的时候,因为软件框架还没搭好,也就没有相应的AppKey配置页面,但是,其他人又要对接接口并且测试怎么办呢?于是当初对接接口的那个程序员就把AppKey写死在了代码里。

后来,软件框架搭好以后,因为开发任务比较繁重,时间久了,那个对接接口的程序员也就渐渐遗忘了这件事情,当然,这只是事发后那个程序员自己的解释,我其实并不认同!

我刚进入公司的时候,很快就发现了这个事情,并且也专门询问过当事人,人家给我的回答是:“这个AppKey又不会变,等有空了再把配置界面开发好,放上去就行了!”

毕竟人家是老员工,我也没过多反驳,对于他的代码,我也不敢改,怕他说我多管闲事,但是,我认为这个事情放在这里,始终不是个事,于是就在数据库创建了一张表,专门用来存放相关的配置信息,之后我所有的接口调用,AppKey都是通过读这张表来获取的。

突然有一天,我们公司注册的开放平台向我们公司发送了一封邮件,告知我们AppKey即将到期,需要续约的话,去开放平台操作续约,到期不续约AppKey将被停止使用。

我们老板收到这条邮件以后,他就登录到了开放平台,不知道咋整的,就把我们公司在开放平台注册的应用给删了!

随后,公司立马就乱了,同事立马跑到研发部,告诉我们软件很多功能用不了了,报了一堆错!一查之下,才知道AppKey失效了!

因为老板把开放平台的应用删了,那么就意味着所有接口的权限也就都没了,需要重新申请才可以,就这样,公司软件宕了好几天,直到新的AppKey权限全部申请到位,研发部在代码里替换完AppKey,软件才得以恢复正常!

这个事情给公司造成了好几万的损失,因为这个开放平台对应的平台我们公司每天都会有好几万的营业额,几天下来不能操作软件,公司同事只能在平台后台操作,效率肯定不如在公司软件上操作那么效率。

庆幸的是,这个事情最终没有追究到研发部,因为当初那个程序员虽然把AppKey写死在了代码里,但如果仅仅是AppKey失效了,在代码里替换掉AppKey再发布一个新的版本,连改带发布,估计也就十几分钟的事情。

结语

事情的罪魁祸首还是老板,他要不是把AppKey删了,也不至于导致公司软件好几天不能用!

可从程序员的角度来说,把这么重要的接口访问凭证写死在代码里,并且一直不去做配置界面,其实是有点说不过去的。

只不过他比较幸运,这次虽然给公司造成了一定的损失,但火没烧到研发部。可如果这件事情放在一个懂技术的人眼里,其实将AppKey写死在代码里的那个程序员以及老板其实都有问题!