最近发生了一件项目无端暴露的事故。

2019年6月中旬,我们收到了来自于客户Y总的投诉。

“你们这是在干什么,这App下载了都用不了啊?!” “我下午几十个客户下载,没有一个可以用的,搞什么?!”

收到这个信息时,我们团队是表示很疑惑的,因为在我们最近的测试中,项目都是能够正常下载,正常运行。为何到了客户那边下载却用不了呢?

带着这个不解,我们向客Y总提出了咨询,了解他的客户使用的设备及其下载使用App的流程。

咨询发起不久,我们就收到了客户的回复,其表示,大部分新客户是iOS用户,他们通过百度直接搜索并下载了App,却发现能下载却无法正常注册使用。

得到回复的我们,表示十分的惊讶。由于iOS系统的限制,苹果手机上的应用应该是通过App Store下载才对,而不能够从搜索引擎查找下载。怀着这样的疑问,我们打开自己的苹果手机,在百度输入“A项目”的名字,惊讶的发现竟然真的可以搜索得到。

但随着我们点击进入搜索到的连接后,呦,傻眼了。这明明是我们的测试版本啊,怎么会在网上被人搜索到呢?从事互联网的很多小伙伴应该都知道,测试版本的iOS App需要由程序员设置对应的UDID后方能下载,这也是为什么客户反馈很多iOS用户下载后无法打开使用的原因。

怀揣着疑问,我和程序员小伙伴们开始了检查,检查后发现,其原因出在我们用于打包的第三方平台,其链接将会被百度收录,并处于较高搜索权重的位置,也是这原因导致了,我们的App在百度通过项目名进行搜索,就能搜到对应的下载链接,尽管这个版本是测试用的我们不想对外发布的版本。

这是我们犯的一个非常无脑的错误,没有注意第三方服务可能带来的隐患(毕竟是业内常用的第三方,过于信任了)。

而且在该项目的开发过程中,我们还犯了另一个错误,那就是,测试项目打包时候没有注意项目保密问题,直接使用项目真实名字进行打包,这导致项目测试版本便能够直接在搜索引擎被搜索到。假设我们能够注意保密,例如使用项目代号进行项目测试版本的发布,一定程度上就能避免这类问题了,真的是有够傻的。

以上又是我们在对外服务中踩过的坑,也从该事件中,让我们再次意识到项目代码、项目保密的重要性,以及很重要的一点,那就是不要过于信赖第三方应用,而需要保持一定的警惕心理。